Anda di halaman 1dari 309

ARHITEKTURA RAUNARA (pregled principa i evolucije) Miroslav Hajdukovi arko ivanov

NOVI SAD, 2012.

PREDGOVOR
Cilj ove knjige je da stvori funkcionalno zaokruenu sliku o radu raunara. Zbog toga je akcenat stavljen na pregled celine, a ne na razradu detalja. Zato se knjiga zaustavlja na logikom niovu i ne uputa se u razmatranje digitalnih sklopova, koji su prisutni ispod tog nivoa. Znai, raunar se posmatra sa stanovita njegovog korienja (iz ugla programera), a ne sa stanovita njegovog pravljenja (iz ugla projektanta). Za izlaganje sutinskih principa funkcionisanja raunara koristi se hipotetski raunar KONCEPT. Njegov razvoj je voen idejom da se na to jednostavniji nain podri izvravanje programa, koji su izraeni procedurnim programskim jezicima. Izlaganje kree od korisnikog opisa procesora, nastavlja se primerima njegovog korienja na asemblerskom nivou i zavrava se izlaganjem osnova funkcionisanja svih delova hipotetskog raunara KONCEPT. Da italac ove knjige ne bi ostao samo na poznavanju principa funkcionisanja hipotetskog raunara, izloena je i evolucija elektronskih raunara. Posebna panja je posveena karakteristikama raunara u pojedinim evolucionim fazama i faktorima koji su usmeravali ovu evoluciju. Ukazano je na raunare koji su izvrili znaajan uticaj na trite i ija upotreba nije bila ograniena samo na pojedina podruja primene. Ovo izdanje knjige je nastalo ispravljanjem greaka koje su uoene u tekstu njenog prethodnog izdanja, kao i pojanjavanjem i proirenjem delova teksta koji su bili nedovoljno razumljivi studentima. U tekst knjige je ukljuena glava 15., iji autor je arko ivanov. On je obavio i tehniku obradu knjige.

SADRAJ
1.
1.1. 1.2.

UVOD ........................................................................................ 1
POJAM ARHITEKTURE RAUNARA................................................................1 MODEL RAUNARA..............................................................................................1 PRIMER UPOTREBE PROGRAMSKOG JEZIKA C ...............................................1 OSOBINE PROCEDURNIH PROGRAMSKIH JEZIKA..........................................2 MEMORIJA ................................................................................................................2 PROCESOR ................................................................................................................3 ADRESIRANJE ..........................................................................................................3 SKUP NAREDBI ........................................................................................................4 MAINSKE I ASEMBLERSKE NAREDBE.............................................................4 FIZIKA OSNOVA MODELA RAUNARA.......................................................5 PITANJA ...................................................................................................................8

1.3. 1.4.

2.
2.1.

BROJNI SISTEMI I PREDSTAVE BROJEVA .......................... 9


ARITMETIKA OGRANIENOG BROJA CIFARA ...........................................9 KOMPLEMENT 10 PREDSTAVA OZNAENIH CELIH BROJEVA ....................9 IZLAZAK VAN OPSEGA .......................................................................................11 POREENJE CELIH BROJEVA.............................................................................12 VIESTRUKA PRECIZNOST .................................................................................13 ZAKONI ARITMETIKE ..........................................................................................13 PREDSTAVLJANJE REALNIH BROJEVA.......................................................14 ARITMETIKA MAINSKE NORMALIZOVANE FORME ..................................15 BINARNI BROJNI SISTEM .................................................................................15 POSTUPAK KONVERZIJE BROJEVA ..................................................................16 ARITMETIKA OGRANIENOG BROJA CIFARA U BINARNOM BROJNOM SISTEMU.................................................................................................................19 KOMPLEMENT 2 PREDSTAVA OZNAENIH CELIH BROJEVA ....................19 IZLAZAK VAN OPSEGA .......................................................................................20 POREENJE CELIH BROJEVA.............................................................................22 VIESTRUKA PRECIZNOST .................................................................................24 ZAKONI ARITMETIKE ..........................................................................................24 PREDSTAVLJANJE VREDNOSTI REALNOG TIPA U BINARNOM BROJNOM SISTEMU ...........................................................................................24 VIEZNANA INTERPRETACIJA CELIH BROJEVA ........................................25 PITANJA .................................................................................................................26

2.2. 2.3. 2.4.

2.5. 2.6.

3.
3.1. 3.2.

ASEMBLERSKO PROGRAMIRANJE.................................... 27
NIVOI PROGRAMIRANJA..................................................................................27 ARHITEKTURA NAREDBI PROCESORA KONCEPT...................................28 NAREDBE ZA CELOBROJNU ARITMETIKU .....................................................28 NAREDBE ZA RUKOVANJE BITIMA..................................................................31 NAREDBE PREBACIVANJA .................................................................................33 UPRAVLJAKE NAREDBE...................................................................................33 ASEMBLERSKI JEZIK KONCEPT ....................................................................35 PRIMERI ASEMBLERSKIH PROGRAMA.......................................................39

3.3. 3.4.

3.5. 3.6.

3.7. 3.8.

RAUNANJE NAJVEEG ZAJEDNIKOG DELIOCA ...................................... 39 IZLAZAK VAN OPSEGA KOD NEOZNAENIH CELIH BROJEVA ................ 40 IZLAZAK VAN OPSEGA KOD OZNAENIH CELIH BROJEVA...................... 40 RUKOVANJE MAINSKOM NORMALIZOVANOM FORMOM....................... 41 RUKOVANJE LOGIKIM VREDNOSTIMA........................................................ 42 RAUNANJE VREDNOSTI CELOBROJNOG IZRAZA ...................................... 43 RUKOVANJE NIZOVIMA ..................................................................................... 43 RUKOVANJE SLOGOVIMA.................................................................................. 44 POTPROGRAM ..................................................................................................... 45 ASEMBLERSKI OBLIK POTPROGRAMA........................................................... 46 MAKRO .................................................................................................................. 49 OPIS MAKRO DEFINICIJA I MAKRO POZIVA.................................................. 51 PRIMERI MAKRO DEFINICIJA I MAKRO POZIVA .......................................... 53 MAKRO DEFINICIJA SA MAKRO DEFINICIJOM ............................................. 53 USLOVNO ASEMBLIRANJE................................................................................. 54 STEK........................................................................................................................ 55 FREJM...................................................................................................................... 58 PITANJA ................................................................................................................. 60

4.
4.1. 4.2.

MEMORIJA I PROCESOR RAUNARA KONCEPT ..............62


ORGANIZACIJA MEMORIJE RAUNARA KONCEPT ............................... 62 DEKODIRANJE ADRESA...................................................................................... 63 PRINCIPIJELNI IZGLED MEMORIJE SA 4 LOKACIJE...................................... 64 KODIRANJE I MAINSKI FORMATI NAREDBI PROCESORA KONCEPT65 KODOVI 1. TIPA NAREDBI .................................................................................. 67 KODOVI 2. TIPA NAREDBI .................................................................................. 67 KODOVI 3. TIPA NAREDBI .................................................................................. 68 KODOVI 4. TIPA NAREDBI .................................................................................. 68 KODOVI 5. TIPA NAREDBI .................................................................................. 69 KODOVI 6. TIPA NAREDBI .................................................................................. 69 KODOVI 7. TIPA NAREDBI .................................................................................. 70 KODOVI 8. TIPA NAREDBI .................................................................................. 70 KODOVI 9. TIPA NAREDBI .................................................................................. 70 KODOVI 10. TIPA NAREDBI ................................................................................ 71 KODOVI 11. TIPA NAREDBI ................................................................................ 71 KODOVI 12. TIPA NAREDBI ................................................................................ 71 KODOVI 13. TIPA NAREDBI ................................................................................ 72 KODOVI 14. TIPA NAREDBI ................................................................................ 72 KODOVI 15 TIPA NAREDBI ................................................................................. 73 ORGANIZACIJA PROCESORA KONCEPT..................................................... 73 UPRAVLJANJE PROCESOROM KONCEPT................................................... 77 MIKRO-PROGRAMI OBAVLJANJA .................................................................... 78 INICIJALNI MIKRO-PROGRAM........................................................................... 84 UPRAVLJAKA JEDINICA PROCESORA KONCEPT ................................. 85 UPRAVLJANJE PREKIDAIMA IZ UPRAVLJAKE JEDINICE PROCESORA KONCEPT..................................................................................... 89

4.3. 4.4. 4.5. 4.6.

UPRAVLJANJE PREKIDAIMA IZVAN UPRAVLJAKE JEDINICE PROCESORA KONCEPT .....................................................................................90 4.8. MAINSKI OBLICI MIKRO-PROGRAMA.......................................................95 4.9. RAZMATRANJE RADA PROCESORA KONCEPT.......................................102 4.10. PITANJA ...............................................................................................................103

4.7.

5.
5.1. 5.2.

RAUNAR KONCEPT.......................................................... 105

ORGANIZACIJA RAUNARA KONCEPT .....................................................105 ULAZNI I IZLAZNI UREAJI RAUNARA KONCEPT..............................107 KOMANDNI JEZIK ...............................................................................................107 TASTATURA .........................................................................................................107 EKRAN ...................................................................................................................109 RAUNAR KONCEPT SA ZNAKOVNIM ULAZOM I IZLAZOM ...................111 STANDARDNI ZNAKOVNI KODOVI ................................................................112 ZNAKOVNA I INTERNA PREDSTAVA CELIH BROJEVA..............................113 ZNAKOVNA INTERAKCIJA KORISNIKA I RAUNARA ...............................113 BIOS ........................................................................................................................116 5.3. VRSTE MEMORIJE ............................................................................................117 5.4. KODOVI ZA OTKRIVANJE I POPRAVKU GREAKA ...............................121 5.5. OPERATIVNI SISTEM .......................................................................................123 STRUKTURA OPERATIVNOG SISTEMA..........................................................124 INTERPRETER KOMANDi OPERATIVNOG SISTEMA ...................................126 SISTEMSKI PROGRAMI ......................................................................................126 ODNOS BIOS-A I OPERATIVNOG SISTEMA....................................................127 5.6. PREKLJUIVANJE ............................................................................................128 5.7. PREKID .................................................................................................................130 MEHANIZAM PREKIDA......................................................................................131 IZVEDBA PREKIDA .............................................................................................132 ODNOS OBRADE PREKIDA I PREKLJUIVANJA ..........................................136 ORGANIZACIJA DRAJVERA TERMINALA .....................................................137 ORGANIZACIJA DRAJVERA DISKA.................................................................138 USKLAIVANJE RADA KONTROLERA I UREAJA .....................................138 5.8. SABIRNICA ..........................................................................................................139 5.9. VIEKORISNIKI RAD .....................................................................................142 LOGIKI I FIZIKI ADRESNI PROSTORI.........................................................142 PRETVARANJE LOGIKE ADRESE U FIZIKU..............................................143 IZUZETAK .............................................................................................................145 PRIVILEGOVANI I NEPRIVILEGOVANI REIM RADA PROCESORA ........146 IZVEDBA SISTEMSKIH POZIVA .......................................................................147 5.10. PITANJA ...............................................................................................................147

6.
6.1. 6.2. 6.3. 6.4.

SISTEMSKI PROGRAMI ...................................................... 150


EDITOR .................................................................................................................150 ASEMBLER ..........................................................................................................151 MAKRO PRETPROCESOR ...............................................................................155 LINKER .................................................................................................................157 PROBLEM RELOKACIJE.....................................................................................157

6.5. 6.6. 6.7.

RELATIVNO ADRESIRANJE.............................................................................. 159 PROBLEM SPOLJANJIH REFERENCI ............................................................. 160 OBRAZOVANJE IZVRNE SEKVENCE ............................................................ 163 LOUDER ............................................................................................................... 165 DIBAGER.............................................................................................................. 165 PITANJA ............................................................................................................... 166

7.
7.1. 7.2. 7.3. 7.4.

EVOLUCIJA ARHITEKTURE RAUNARA ..........................168


PRECIZIRANJE POJMA ARHITEKTURE RAUNARA............................. 168 POKRETAI RAZVOJA ARHITEKTURE RAUNARA ............................. 169 PERIODI EVOLUCIJE ....................................................................................... 170 PITANJA ............................................................................................................... 170

8.
8.1.

EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 1950. GODINE .......................................................................171


SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 1950. GODINE ................................................................................................................................ 171 ARHITEKTURA RAUNARA PRVE GENERACIJE......................................... 172 MANE RAUNARA PRVE GENERACIJE ......................................................... 173 PITANJA ............................................................................................................... 173

8.2.

9.
9.1.

EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 1960. GODINE .................................................................................174


SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 1960. GODINE ................................................................................................................................ 174 DIGITALNA KOLA .............................................................................................. 174 RADNA MEMORIJA ............................................................................................ 175 KONTROLERI ....................................................................................................... 176 ARHITEKTURA NAREDBI ................................................................................. 177 PROGRAMSKI JEZICI VISOKOG NIVOA......................................................... 178 MEMORIJSKA HIJERARHIJA............................................................................. 179 OPERATIVNI SISTEMI ........................................................................................ 179 MANE RAUNARA DRUGE GENERACIJE...................................................... 180 PITANJA ............................................................................................................... 180

9.2.

10. EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 1970. GODINE .................................................................................181


10.1. SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 1970. GODINE ................................................................................................................................ 181 INTEGRISANA KOLA.......................................................................................... 181 MAGNETNI DISKOVI.......................................................................................... 181 VELIKI I MINI RAUNARI ................................................................................. 182 FAMILIJE RAUNARA ....................................................................................... 182 OTVORENA ARHITEKTURA ............................................................................. 182 PRODUKTIVNOST PROGRAMERA .................................................................. 183 ARHITEKTURA NAREDBI ................................................................................. 184 MIKRO-PROGRAMIRANJE ................................................................................ 185

PROMENLJIVI FORMATI MAINSKIH NAREDBI ..........................................186 ADRESIRANJA......................................................................................................186 ORGANIZACIJA RADNE MEMORIJE................................................................186 MULTIPROGRAMIRANJE...................................................................................187 IDEJA VIRTUELNE MEMORIJE .........................................................................188 IDEJA SKRIVENE MEMORIJE............................................................................194 ODNOS VIRTUELNE I SKRIVENE MEMORIJE................................................196 OPERATIVNI SISTEM I VIRTUELNA MAINA ...............................................197 MANA RAUNARA TREE GENERACIJE.......................................................197 10.2. ISHODI EVOLUCIJE ARHITEKTURE RAUNARA U PERIODU OKO 1970. GODINE ................................................................................................................197 RADNA MEMORIJA.............................................................................................197 ARHITEKTURA NAREDBI ZA IBM SYSTEM/360 .............................................198 ARHITEKTURA NAREDBI ZA DEC PDP11 ......................................................200 OSOBINE MAGNETNOG DISKA........................................................................202 ORGANIZACIJA SABIRNICE..............................................................................203 ORGANIZACIJA ASOCIJATIVNE MEMORIJE .................................................206 SKRIVENA MEMORIJA.......................................................................................209 VIRTUELNA MEMORIJA ....................................................................................211 MEMORIJSKA HIJERARHIJA .............................................................................214 PROBLEM SINHRONIZACIJE.............................................................................215 10.3. PITANJA ...............................................................................................................216

11. EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 1980. GODINE................................................................................. 219


11.1. SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 1980. GODINE .................................................................................................................................219 POLUPROVODNIKE MEMORIJE.....................................................................219 MIKRO-RAUNARI .............................................................................................220 PERSONALNI RAUNARI ..................................................................................223 RAUNARSKE MREE .......................................................................................223 SUPER-RAUNARI ..............................................................................................224 11.2. ISHODI EVOLUCIJE ARHITEKTURE RAUNARA U PERIODU OKO 1980. GODINE ................................................................................................................229 ARHITEKTURA NAREDBI ZA DEC VAX11/780 ...............................................229 ARHITEKTURA NAREDBI ZA Intel 8086 ..........................................................231 SEGMENTNA ORGANIZACIJA RADNE MEMORIJE ......................................233 ARHITEKTURA NAREDBI ZA Intel 80386 ........................................................235 PRINCIP RADA MIA ..........................................................................................237 OSOBINE GRAFIKIH TERMINALA.................................................................237 PRINCIPI RADA LOKALNIH MREA................................................................238 VIEPROCESORSKI RAUNARI SA ZAJEDNIKOM SABIRNICOM ..........239 11.3. PITANJA ...............................................................................................................242

12. EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 1990. GODINE................................................................................. 244

12.1. SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 1990. GODINE ................................................................................................................................ 244 RISC ARHITEKTURA .......................................................................................... 244 GRANICE RASTA BRZINE I GUSTINE TRANZISTORA NA IPU................ 245 DOMETI PRIMENE PARALELIZMA ................................................................. 246 KONKURENTNO PROGRAMIRANJE................................................................ 248 KLASIFIKACIJA RAUNARA............................................................................ 250 OTPORNOST NA KVAROVE.............................................................................. 255 RISC PROCESORI ................................................................................................. 255 12.2. ISHODI EVOLUCIJE ARHITEKTURE RAUNARA U PERIODU OKO 1990. GODINE ................................................................................................................ 259 IEEE 754 STANDARD ZA ARITMETIKU REALNIH BROJEVA..................... 259 ARHITEKTURA NAREDBI ZA MIPS ................................................................. 260 INTEL PENTIUM PRO PROCESOR ..................................................................... 261 EVOLUCIJA MASOVNE MEMORIJE................................................................. 261 UTICAJ RISC PROCESORA NA VIRTUELNU MEMORIJU............................. 263 SPOJNE MREE.................................................................................................... 264 BARIJERNA SINHRONIZACIJA......................................................................... 271 12.3. PITANJA ............................................................................................................... 272

13. EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 2000. GODINE .................................................................................274


13.1. SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 2000. GODINE ................................................................................................................................ 274 UGRAENI RAUNARI...................................................................................... 274 RADNE STANICE................................................................................................. 274 SERVERI................................................................................................................ 275 PARALELIZAM UNUTAR PROCESORA .......................................................... 277 EVOLUCIJA OPTIKIH DISKOVA .................................................................... 279 13.2. ISHODI EVOLUCIJE ARHITEKTURE RAUNARA U PERIODU OKO 2000. GODINE ................................................................................................................ 279 ARHITEKTURA NAREDBI ZA INTEL ITANIUM .............................................. 279 13.3. PITANJA ............................................................................................................... 280

14. 15.

PROCENA OSOBINA RAUNARA......................................281 SAVREMENI PERSONALNI RAUNAR ..............................284

14.1. NAIN PROCENE OSOBINA RAUNARA.................................................... 281 14.2. PITANJA ............................................................................................................... 283 15.1. PROCESOR .......................................................................................................... 284 15.2. MATINA PLOA.............................................................................................. 285 VEZNI (BRIDGE) IP ........................................................................................... 287 BIOS IP ................................................................................................................ 287 SABIRNICE ........................................................................................................... 288 15.3. RADNA MEMORIJA .......................................................................................... 291 15.4. GRAFIKI ADAPTER........................................................................................ 292 15.5. KUITE, NAPAJANJE I SISTEM ZA HLAENJE ..................................... 293

LITERATURA ................................................................................ 295 INDEKS SLIKA .............................................................................. 296

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

1. UVOD
1.1. POJAM ARHITEKTURE RAUNARA
Arhitektura raunara (computer architecture) se bavi problemima upotrebe i pravljenja raunara. Posmatrano sa stanovita arhitekture raunara, upotreba raunara se svodi na njegovo programiranje, jer je namena raunara da izvrava programe. Nain programiranja zavisi od osobina skupa naredbi raunara. Ovim osobinama se bavi arhitektura naredbi (instruction set architecture, skraeno ISA). Cilj pravljenja raunara je ostvarenje ili implementacija (implementation) njegove arhitekture naredbi. Implementacija arhitekture naredbi obuhvata organizaciju (organization) i izvedbu (hardware) raunara. Organizacija raunara se bavi organizacionim komponentama koje obrazuju raunar (njihovom namenom i funkcijom), kao i meusobnim odnosima ovih komponenti. Izvedba raunara se bavi problemima proizvodnje pomenutih komponenti. Pojam arhitekture raunara obuhvata arhitekturu naredbi i njenu implementaciju, odnosno organizaciju i izvedbu raunara. Izmeu arhitekture naredbi i njene implementacije postoji meuzavisnost, jer implementacija odraava i ograniava arhitekturu naredbi.

1.2. MODEL RAUNARA


Na arhitekturu naredbi utiu programski jezici koji se koriste za programiranje raunara. Za trino prihvaene raunare je karakteristino da su prilagoeni procedurnim (imperativnim) programskim jezicima. Njihov tipian predstavnik je programski jezik C. PRIMER UPOTREBE PROGRAMSKOG JEZIKA C Upotreba programskog jezika C moe da se ilustruje na primeru nalaenja najveeg zajednikog delioca (NZD) dva razliita neoznaena broja a i b, za koje vai: a == nNZD b == mNZD Za odreivanje najveeg zajednikog delioca neoznaenih brojeva a i b potrebno je koeficijente n i m svesti na 1. To se moe postii ponavljanjem oduzimanja: |a-b| == |n-m|NZD tako da se, nakon svakog oduzimanja, promenljivoj sa veom vrednou dodeli

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

razlika. Precizan postupak nalaenja najveeg zajednikog delioca opisuje segment programa, izraen programskim jezikom C:
unsigned int a = 12; unsigned int b = 10; while (a!=b) if (a>b) a = a-b; else b = b-a;

Po izvravanju prethodnog segmenta programa vai: a == b == NZD == 2 (radi jednostavnosti, optost prethodnog segmenta programa je ograniena na odreivanje najveeg zajednikog delioca neoznaenih brojeva 12 i 10). OSOBINE PROCEDURNIH PROGRAMSKIH JEZIKA Procedurni programski jezici omoguuju opisivanje obrada podataka koji pripadaju celom, realnom, znakovnom ili logikom skupu. Ovi skupovi se nazivaju i prosti tipovi, jer se njihove vrednosti ne mogu ralanjivati na prostije sastojke. Prosti tipovi se nazivaju i osnovni tipovi (fundamental types), jer predstavljaju osnovu za opisivanje svih obrada podataka. Za opisivanje obrada podataka koriste se operacije procedurnih programskih jezika koje omoguuju rukovanje vrednostima prostih tipova. U ovakve operacije spadaju aritmetike, relacione i logike operacije. Optost opisima obrada podataka daju promenljive. Svaku promenljivu karakteriu njeno ime, tip i vrednost. Promenljivoj se dodeljuje vrednost njenog tipa posredstvom operacije dodele. Za optost opisa obrada podataka su vane i upravljake operacije. Zahvaljujui njima redosled obavljanja operacija nije samo sekvencijalni, nego i alternativni i repetitivni. Promenljive, vrednosti prostih tipova i operacije (upravljake i one za rukovanje promenljivim i vrednostima prostih tipova) predstavljaju osnovne elemente procedurnih programskih jezika i ujedno daju uopteni opis raunara. Ovome opisu odgovara model raunara koji obuhvata memoriju i procesor. Ovaj model podrava izvravanje programa koji su izraeni procedurnim programskim jezicima. MEMORIJA Memorija (memory) je sastavljena od niza lokacija. Lokacije omoguuju predstavljanje promenljivih prostih tipova, ako mogu da sadre vrednosti prostih tipova (koje se dodeljuju ovim promenljivim). Svaka lokacija poseduje jednoznanu (numeriku) oznaku ili adresu (brojevi 0, 1, 2, ...), po kojoj se razlikuje od drugih lokacija. Pored adrese, lokacija moe da poseduje i posebnu (simboliku) oznaku ili labelu (label). Kada postoji, labela se koristi umesto adrese. Labela odgovara imenu promenljive koju predstavlja labelirana lokacija.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Za lokacije je vana osobina univerzalnosti, koja podrazumeva da svaka lokacija moe da sadri vrednost bilo kog prostog tipa i adresu. Univerzalnost lokacija se postie kodiranjem (predstavljanjem) svih vrednosti realnog, znakovnog i logikog tipa vrednostima celog tipa (podskupom celih brojeva, koji pripadaju celom tipu). Zbog univerzalnosti lokacija, javlja se problem vieznane interpretacije sadraja lokacija. Preuzimanje vrednosti promenljive, kao i dodela vrednosti promenljivoj, podrazumeva pristupanje lokacijama, radi itanja (preuzimanja), ili pisanja (izmene) sadraja lokacija. PROCESOR Procesor (processor) je sastavljen od sklopova i registara. Sklopovi omoguuju izvravanje pojedinih operacija (namenjenih za rukovanje vrednostima prostih tipova), a registri sadre vrednosti prostih tipova koje se obrauju u toku izvravanja pojedinih operacija. Registri se razlikuju od memorijskih lokacija po tome to se nalaze u procesoru i po tome to nisu oznaeni adresom ili labelom, nego posebnom oznakom. Pre izvravanja operacije, procesor preuzima oznaku operacije i njene operande. Operandi su ili vrednosti prostih tipova na koje se operacija odnosi, ili adrese lokacija iji sadraji se itaju ili piu u toku izvravanja operacije. Oznaka operacije odreuje sklop u kome se izvrava dotina operacija. Oznaka operacije i operandi obrazuju naredbu (instruction) procesora. Procesor izvrava operacije u toku izvravanja svojih naredbi. Redosled izvravanja naredbi je odreen programom. ADRESIRANJE Operandi se dele na ulazne i izlazne. Ulazni operandi odreuju (ulazne) vrednosti, koje se obrauju u toku izvravanja naredbi. Izlazni operandi odreuju (izlazne) lokacije, u koje se smetaju rezultati izvravanja naredbi. Ulazni operand se naziva neposredni (immediate) operand, kada mu odgovara ulazna vrednost. Neposredni operandi su potrebni, radi konstanti. Ulazni operand se naziva direktni (direct) operand, kada mu odgovara adresa memorijske lokacije sa ulaznom vrednou, odnosno, naziva se registarski (register) operand, kada mu odgovara oznaka registra sa ulaznom vrednou. Izlazni operand se naziva direktni operand, kada mu odgovara adresa izlazne memorijske lokacije, odnosno, naziva se registarski operand, kada mu odgovara oznaka izlaznog registra. Direktni i registarski operandi su potrebni, radi promenljivih prostih tipova. Ulazni operand se naziva posredni (register indirect) operand, kada mu odgovara oznaka registra sa adresom memorijske lokacije sa ulaznom vrednou. Izlazni operand se naziva posredni operand, kada mu odgovara oznaka registra sa adresom izlazne memorijske lokacije. Posredni operandi su potrebni, radi pokazivakih promenljivih. Ulazni operand se naziva indeksni (indexed) operand, kada mu

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

odgovaraju posebna vrednost - indeks i oznaka registra, iji sadraj u sumi sa indeksom daje adresu memorijske lokacije sa ulaznom vrednou. Izlazni operand se naziva indeksni operand, kada mu odgovaraju posebna vrednost - indeks i oznaka registra, iji sadraj u sumi sa indeksom daje adresu izlazne memorijske lokacije. Indeksni operandi su potrebni, na primer, radi promenljivih sloenih tipova (niz ili slog). Odreivanje ulaznih vrednosti, odnosno izlaznih lokacija, se naziva i adresiranje, pa tako postoje neposredno, direktno, registarsko, posredno i indeksno adresiranje. SKUP NAREDBI Skup naredbi procesora se moe svesti na podskup aritmetikih naredbi, kao i na relacione, logike, upravljake i naredbe prebacivanja. Od aritmetikih naredbi dovoljno je da procesor podri celobrojno sabiranje i oduzimanje, jer se ostale aritmetike naredbe mogu izraziti pomou celobrojnog sabiranja i oduzimanja. Zahvaljujui kodiranju vrednosti realnog, znakovnog i logikog tipa vrednostima celog tipa, relacione naredbe se svode na celobrojno oduzimanje desnog operanda relacije od levog i zakljuivanje o relaciji na osnovu vrednosti i predznaka razlike, jer: 1. relacija == vai, ako je razlika 0, 2. relacija != vai, ako je razlika razliita od 0, 3. relacija < vai, ako je razlika negativna, 4. relacija >= vai, ako je razlika pozitivna ili 0, 5. relacija > vai, ako je razlika pozitivna, a 6. relacija <= vai, ako je razlika negativna ili 0. Logike naredbe obuhvataju logiko i, logiko ili i logiko ne, a upravljake naredbe bezuslovnu ili uslovnu izmenu redosleda izvravanja naredbi programa. Naredbe prebacivanja podravaju dodelu vrednosti promenljivoj tako to omoguuju prebacivanje sadraja izmeu registara procesora i memorijskih lokacija. MAINSKE I ASEMBLERSKE NAREDBE Lokacije mogu da sadre i naredbe, ako se oznake operacija naredbi (poput njihovih operanada) kodiraju celim brojevima. Ovi brojevi predstavljaju kodove naredbi. Kod naredbe sa operandima naredbe obrazuje mainsku naredbu. Mainski format naredbe propisuje kako se interpretiraju cifre celog broja koji predstavlja mainsku naredbu. Simbolika predstava mainske naredbe (u kojoj se koriste labele, kao i simbolike oznake za operaciju i operande) se naziva asemblerska naredba. Mainske naredbe pripadaju mainskom jeziku, a asemblerske naredbe pripadaju asemblerskom jeziku. Izvravanju asemblerskih naredbi obavezno prethodi njihovo prevoenje u mainski oblik. Prevoenje asemblerskog programa, sastavljenog od asemblerskih

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

naredbi, u mainski program, sastavljen od mainskih naredbi, obavlja poseban program prevodilac, koji se naziva asembler. Slino asembleru, prevoenje izvornog programa, sastavljenog od iskaza procedurnog programskog jezika, u asemblerski (mainski) program obavlja poseban program prevodilac, koji se naziva kompajler.

1.3. FIZIKA OSNOVA MODELA RAUNARA


Za pravljenje prethodno opisanog modela raunara dovoljna je fizika osnova koja omoguuje predstavljanje celih brojeva, jer su vrednosti prostih tipova i delovi naredbi predstavljeni (kodirani) celim brojevima. Cifre celih brojeva se mogu predstaviti raznim nivoima fizikih veliina, kao to su elektrini napon ili jaina magnetnog polja. Praktini razlozi sugeriu korienje samo 2 nivoa fizikih veliina, odnosno 2 nivoa signala. To je dovoljno: za prikaz cifara binarnog brojnog sistema (0 : nula, 1 : jedan), ali i za prikaz logikih vrednosti (0 : netano, 1 : tano). Podudarnost cifara binarnog brojnog sistema i logikih vrednosti omoguuje da se aritmetike operacije za binarni brojni sistem opiu logikim funkcijama, ako se binarne cifre interpretiraju kao logike vrednosti. To potvruje tablica sabiranja za binarni brojni sistem (Slika 1.3.1). a 0 0 1 1 b 0 1 0 1 a+b 0 1 1 0 Prenos 0 0 0 1

Slika 1.3.1 Tablica sabiranja za binarni brojni sistem Ako se cifre iz tablice sabiranja (Slika 1.3.1) interpretiraju kao logike vrednosti, a prve dve kolone kao argumenti logike funkcije, tada trea kolona ove tablice opisuje logiku funkciju iskljuivo ili (exclusive or): a^b (oznaka ^ predstavlja operator programskog jezika C za logiku operaciju iskljuivo ili). etvrta kolona ove tablice opisuje logiku funkciju i (and): a&b (oznaka & predstavlja operator programskog jezika C za logiku operaciju i). Prethodno dozvoljava da se raunar napravi kao fiziki ureaj koji memorie logike vrednosti i obavlja logike funkcije. Tako, voltmetar iz elektrinog kola (Slika 1.3.2) pokazuje vrednost logike funkcije i:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

a&b ako stanja prekidaa (0 : otvoren, 1 : zatvoren) zavise od vrednosti logikih promenljivih a i b.

a b 1V

Slika 1.3.2 Elektrino kolo - ekvivalent logike funkcije i Voltmetar iz elektrinog kola (Slika 1.3.3) pokazuje vrednost logike funkcije ili (or): a|b ako stanja prekidaa (0 : otvoren, 1 : zatvoren) zavise od vrednosti logikih promenljivih a i b (oznaka | predstavlja operator programskog jezika C za logiku operaciju ili).

1V

Slika 1.3.3 Elektrino kolo - ekvivalent logike funkcije ili Elektrina kola omoguuju i ostvarenje logike negacije. Tako, voltmetar iz elektrinog kola (Slika 1.3.4) pokazuje vrednost logike funkcije negirano i (nand): ~(a&b) ako stanja prekidaa (0 : otvoren, 1 : zatvoren) zavise od vrednosti logikih promenljivih a i b (oznaka ~ predstavlja operator programskog jezika C za logiku operaciju negacije).

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

a b 1V V

Slika 1.3.4 Elektrino kolo - ekvivalent logike funkcije negirano i Pomou logike funkcije negirano i se mogu izraziti sve ostale logike funkcije. Ako se kao operator logike funkcije negirano i odabere oznaka : ab ~(a&b) tada sledei primeri pokazuju kako se pojedine logike funkcije mogu izraziti pomou logike funkcije negirano i: a & b == (a b) (a b) a | b == (a a) (b b) a ^ b == ((a a) b) (a (b b)) a b == (a b) ((a a) (b b)) Iz prethodnog sledi da se za ostvarenje svih logikih funkcija moe koristiti jedan isti tip elektrinog kola. U elektrinim kolima ulogu prekidaa ima tranzistor. Pored ulaznog i izlaznog izvoda, koji su prikazani u sastavu svakog od prekidaa na crteima prethodnih elektrinih kola, tranzistor ima i trei, upravljaki izvod. On odreuje provodnost tranzistora, odnosno, stanje prekidaa. Na upravljaki izvod tranzistora dovodi se, na primer, nivo signala koji odgovara vrednosti neke logike promenljive, odnosno nivo signala koji odgovara vrednosti neke logike funkcije, kao to je naponski nivo, prikazan na voltmetrima iz prethodnih elektrinih kola. Ako se u sastavu prekidaa ne prikazuju upravljaki izvodi (kao to je to uraeno, radi jednostavnosti, na crteima prethodnih elektrinih kola), tada je za svaki prekida neophodno navesti njegovu upravljaku logiku funkciju, koja se naziva i prekidaka funkcija. Podrazumeva se da njena vrednost odreuje stanje prekidaa, odnosno, da ta vrednost odreuje nivo signala na upravljakom izvodu tranzistora. Argumenti prekidake funkcije su logike vrednosti. Oni odreuju njenu vrednost, pa, na taj nain, omoguuju upravljanje prekidaima. Zato se ovakvi argumenti mogu nazvati prekidaki argumenti. Na primer, ako logika funkcija: f(a) == a

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

opisuje upravljanje nekim prekidaem, tada od njenog prekidakog argumenta a zavisi da li je dotini prekida otvoren ili zatvoren. Lokacije (i memorijske lokacije i registri procesora) se prave kao nizovi elija, nazvanih biti. Svakom bitu odgovara poseban fiziki ureaj, kao to je flipflop (flipflop), sposoban za memorisanje jedne logike vrednosti, odnosno binarne cifre. Sve lokacije se sastoje od istog i ogranienog broja bita, organizovanih u bajte (byte) i rei (word). Ograniena veliina lokacija odreuje raspon operanada, odnosno najvei i najmanji operand. Lokacije se prave pomou sekvencijalnih kola koja omoguuju pamenje logikih vrednosti, odnosno binarnih cifara, a sklopovi procesora se prave pomou kombinacionih kola koja ostvaruju pojedine logike funkcije. Za razliku od kombinacionog kola, iji izlaz zavisi samo od njegovog ulaza, izlaz sekvencijalnog kola zavisi ne samo od njegovog ulaza, nego i od njegovog stanja. Iako su principi, na kojima se zasniva rad raunara, jednostavni, nije ni malo jednostavno od principa stii do pouzdanih i jeftinih komponenti, podesnih za pravljenje praktino upotrebljivog raunara. Problemi pravljenja praktino upotrebljivog raunara izlaze van okvira ove knjige, jer je ona posveena samo izgradnji funkcionalno zaokruenog modela raunara. Ipak, namena ove knjige je da itaoca pripremi i za suoavanje sa problemima koji se sreu pri pravljenju praktino upotrebljivog raunara.

1.4. PITANJA
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ta obuhvata pojam arhitekture raunara? Koji prosti (osnovni) tipovi postoje? Koji su osnovni elementi procedurnih programskih jezika? ta obuhvata model raunara? ta karakterie memoriju? Kako se moe interpretirati sadraj lokacije memorije? ta karakterie procesor? Koja adresiranja postoje? ta ulazi u sastav mainske naredbe? ta ulazi u sastav asemblerske naredbe? Kakav zadatak ima asembler? Kakav zadatak ima kompajler? ta omoguuje podudarnost cifara binarnog brojnog sistema i logikih vrednosti? Koja logika funkcija opisuje zbir dve binarne cifre? ta odreuje vrednost prekidake funkcije? Na ta utie vrednost prekidakog argumenta? ta omoguuju sekvencijalna kola? ta omoguuju kombinaciona kola?

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

2. BROJNI SISTEMI I PREDSTAVE BROJEVA


2.1. ARITMETIKA OGRANIENOG BROJA CIFARA
Celi brojevi se uvaju u lokacijama u pozicionoj predstavi (najmanje znaajna cifra u krajnje desnoj poziciji, a najznaajnija cifra u krajnje levoj poziciji). Poziciona predstava celih brojeva olakava obavljanje aritmeti kih operacija. Zahvaljujui njoj, postupak sabiranja i oduzimanja, za neoznaene cele brojeve, se svodi na direktnu primenu tablice sabiranja na parove korespondentnih cifara (s desna u levo). KOMPLEMENT 10 PREDSTAVA OZNAENIH CELIH BROJEVA Za oznaene cele brojeve postupak sabiranja i oduzimanja komplikuje prisustvo predznaka. To ilustruje primer sabiranja oznaenih celih brojeva raznih predznaka. U ovom sluaju predznak rezultata je jednak predznaku sabirka sa veom apsolutnom vrednou. Nakon odreivanja predznaka, sledi potpisivanje sabiraka na ispravan nain, radi oduzimanja apsolutne vrednosti manjeg sabirka od apsolutne vrednosti veeg sabirka. Dopisivanjem ovako dobijene razlike iza prethodno odreenog predznaka nastaje traeni zbir. Vano svojstvo pozicione predstave celih brojeva je da, za ogranien broj cifara, ona dozvoljava predstavljanje oznaenih celih brojeva kao neoznaenih. Na taj nain se eliminiu komplikacije prilikom njihovog sabiranja i oduzimanja, jer se ne mora voditi rauna o predznaku. To pokazuje sledei primer: 68+(-57) == 68+(-57)+1000-1000 == 68+943-1000 == 1011-1000 == 11 Ako se u prethodnom primeru posmatraju samo 3 najmanje znaajne cifre i ako se podrazumeva dodavanje i oduzimanje 103, tada se sabiranje oznaenih celih brojeva 68 i -57 moe prikazati kao: 068 (68) +943 (-57+1000) 011 (1011-1000) Prenos sa najznaajnije pozicije se zanemaruje, jer se podrazumeva dodavanje i oduzimanje 103. Broj 943 je (trocifrena) komplement 10 predstava broja -57. Iz prethodnog primera sledi da se odreivanje n cifarske komplement 10 predstave negativnog celog broja svodi na njegovo sabiranje sa 10n. Meutim, pomenuta komplement 10 predstava se moe odrediti i na drugi nain. On podrazumeva da se za svaku cifru brojnog sistema odredi njen komplement, odnosno cifra koja dopunjava posmatranu cifru do najvee cifre u brojnom sistemu.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

10

Slika 2.1.1 sadri komplemente cifara dekadnog brojnog sistema, ija je najvea cifra 9. cifra komplement komentar 0 9 0+9==9 1 8 1+8==9 2 7 2+7==9 3 6 3+6==9 4 5 4+5==9 5 4 5+4==9 6 3 6+3==9 7 2 7+2==9 8 1 8+1==9 9 0 9+0==9 Slika 2.1.1 Cifre dekadnog brojnog sistema i njihovi komplementi Formiranje komplement 10 predstave negativnog celog broja zapoinje dodavanjem ispred cifara apsolutne vrednosti ovog broja vodeih nula do ukupnog broja cifara. Tako nastane potpuna apsolutna vrednost negativnog celog broja. Zatim se zamenjuje svaka od cifara potpune apsolutne vrednosti negativnog celog broja komplementom dotine cifre. Postupak zamene cifara njihovim komplementima se zove komplementiranje. Komplementiranjem nastaje komplement 9 predstava negativnog celog broja. Uveavanjem komplement 9 predstave negativnog celog broja za 1 nastaje komplement 10 predstava negativnog celog broja. Komplement 10 predstava pozitivnog celog broja nastaje njegovim dopunjavanjem s leva vodeim nulama do ukupnog broja cifara. U sluaju prethodnog primera, trocifrena komplement 10 predstava broja 68 je 068. Trocifrena komplement 9 predstava broja -57 je 942. Ona nastaje komplementiranjem cifara broja 057 (odnosno komplementiranjem cifara potpune apsolutne vrednosti broja -57). Trocifrena komplement 10 predstava broja -57 je 943. Ona je za 1 vea od trocifrene komplement 9 predstave istog broja. Vano je naglasiti da komplementiranjem cifara komplement 10 predstave negativnog celog broja i uveanjem tako dobijenog broja za 1 nastaje potpuna apsolutna vrednost negativnog celog broja. U komplement 10 predstavi oznaenih celih brojeva, sve cifre nose vrednost broja, ali najznaajnija cifra ima i dodatnu ulogu, jer ukazuje na predznak broja. Tako, za komplement 10 predstavu pozitivnih celih brojeva, najznaajnija cifra je uvek 0, a za komplement 10 predstavu negativnih celih brojeva, najznaajnija cifra je uvek 9.

11

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Komplement predstava oznaenih celih brojeva pojednostavljuje procesor, jer omoguuje da se aritmetika oznaenih celih brojeva obavlja kao i aritmetika neoznaenih celih brojeva (znai, bez posmatranja predznaka brojeva). Tako sabiranje brojeva -7 i 2 moe da bude obavljeno kao sabiranje njihovih trocifrenih komplement 10 predstava 993 i 002, uz direktnu primenu tablice sabiranja na parove korespondentnih cifara i bez razmatranja predznaka. Na ovaj nain kao rezultat sabiranja dobije se 995, a to je trocifrena komplement 10 predstava broja -5. U nastavku su prikazane neke vrednosti trocifrene komplement 10 predstave oznaenih celih brojeva (njima korespondentne vrednosti, sa predznakom, su navedene u zagradama): 099 098 097 096 ... 002 001 000 999 998 ... 903 902 901 900 (+99) (+98) (+97) (+96) (+2) (+1) (0) (-1) (-2) (-97) (-98) (-99) (-100)

U komplement 10 predstavi, broj negativnih celih brojeva je za jedan vei od broja pozitivnih celih brojeva. Aritmetike operacije oznaenih celih brojeva u komplement 10 predstavi daju oznaeni celi broj u komplement 10 predstavi. To ilustruje primer oduzimanja: 010 -011 999 (+10) (+11) (-1)

Prilikom obavljanja aritmetikih operacija, prenos sa najznaajnije pozicije u komplement 10 predstavi celih brojeva se uvek zanemaruje. IZLAZAK VAN OPSEGA Za aritmetiku ogranienog broja cifara vezan je problem pojave cifara koje izlaze van opsega, uvedenog ograniavanjem broja posmatranih cifara. Kod

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

12

aritmetike neoznaenih celih brojeva, ije sve cifre nose samo vrednost, do izlaska van opsega dolazi nakon pojave prenosa sa najznaajnije pozicije rezultata: 999 +999 998 U prethodnom primeru se pojavio netaan rezultat, jer se prenos ne moe prikazati u posmatrane 3 cifre. Kod aritmetike oznaenih celih brojeva u komplement 10 predstavi, ija najznaajnija cifra pokazuje da li je re o pozitivnom (0) ili negativnom (9) broju, pojava cifre razliite od 0 ili 9 u najznaajnijoj poziciji rezultata ukazuje na izlazak van opsega: 050 +050 100 ili 900 -001 899

U prethodnim primerima na pojavu netanog rezultata ukazuju neodgovarajue cifre u njegovoj najznaajnijoj poziciji. Vano je zapaziti da interpretacija rezultata zavisi od interpretacije brojeva. Ako se u pretposlednjem primeru celi brojevi interpretiraju kao oznaeni u trocifrenoj komplement 10 predstavi, tada je rezultat taan (u ovom sluaju prenos se zanemaruje). Slino, ako se celi brojevi iz poslednjeg primera interpretiraju kao neoznaeni, tada je rezultat taan, jer nema prenosa sa najznaajnije pozicije. POREENJE CELIH BROJEVA Kod odreivanja relacija, izlazak van opsega pri celobrojnom oduzimanju desnog operanda relacije od levog ne izaziva probleme, nego pomae da se izvede ispravan zakljuak o vaenju relacije. Za neoznaene cele brojeve: 1. relacija == vai, ako je rezultat oduzimanja 0, 2. relacija != vai, ako rezultat oduzimanja nije 0, 3. relacija < vai, ako se pri oduzimanju javi izlazak van opsega (u obliku prenosa), 4. relacija >= vai, ako se pri oduzimanju ne javi izlazak van opsega ili je rezultat 0, 5. relacija > vai, ako se pri oduzimanju ne javi izlazak van opsega i rezultat nije 0, a 6. relacija <= vai, ako se pri oduzimanju javi izlazak van opsega (u obliku prenosa) ili je rezultat 0. Za oznaene cele brojeve:

13

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

1. relacija == vai, ako je rezultat oduzimanja 0, 2. relacija != vai, ako rezultat nije 0, 3. relacija < vai, ako je rezultat negativan (najznaajnija cifra 9) ili se pri oduzimanju izae van opsega (najznaajnija cifra 8), 4. relacija >= vai, ako je rezultat pozitivan (najznaajnija cifra 0) ili se pri oduzimanju izae van opsega (najznaajnija cifra 1) ili je rezultat 0, 5. relacija > vai, ako je rezultat pozitivan (najznaajnija cifra 0) ili se pri oduzimanju izae van opsega (najznaajnija cifra 1), a 6. relacija <= vai, ako je rezultat negativan (najznaajnija cifra 9) ili se pri oduzimanju izae van opsega (najznaajnija cifra 8) ili je rezultat 0. Vaenje prethodnog se moe pokazati na primerima svih tipinih odnosa koji se mogu pojaviti u nekoj relaciji. Za relaciju < sve tipine odnose ilustruju primeri dati tabelarno (Slika 2.1.2). levi operand 88 -99 -19 -99 99 99 19 -88 desni operand 99 99 19 -88 88 -99 -19 -99 < da da da da ne ne ne ne razlika (komplement 10 predstava) 088-099 == 989 901-099 == 802 981-019 == 962 901-912 == 989 099-088 == 011 099-901 == 198 019-981 == 038 912-901 == 011

Slika 2.1.2 Primeri vaenja relacije < VIESTRUKA PRECIZNOST Aritmetika ogranienog broja cifara zahteva viestruku preciznost, kada se operacije odnose na vrednosti iji broj cifara je vei od broja cifara lokacije. U ovom sluaju, delovi vrednosti se uvaju u raznim lokacijama, a operacije se obavljaju za deo po deo ovih vrednosti (idui od manje znaajnih ka znaajnijim delovima vrednosti). ZAKONI ARITMETIKE Za aritmetiku ogranienog broja cifara ne vae zakoni aritmetike, jer, zbog mogueg izlaska van opsega, rezultat zavisi od redosleda obavljanja operacija. To potkrepljuje sledei primer za trocifrenu preciznost: (200+800)-500 != 200+(800-500) u kome su navedeni neoznaeni celi brojevi. U toku formiranja levog zbira dolazi

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

14

do izlaska van opsega, pa je on u optem sluaju razliit od desnog zbira, u kome se ne javlja izlazak van opsega.

2.2. PREDSTAVLJANJE REALNIH BROJEVA


Potpuna poziciona predstava je nepraktina za realne brojeve, jer ona, na primer, podrazumeva da se u broju: 0.000000127 koristi 6 nula za odreivanje poloaja znaajnih cifara iza take. Manje prostora zauzima normalizovana forma, iji eksponent odreuje poloaj znaajnih cifara: 1.2710-7 Jo manje prostora je potrebno za mainsku normalizovanu formu (floatingpoint), koja sadri samo predznak realnog broja, njegovu frakciju (fraction, significand) i podeeni eksponent (biased exponent, excess). Frakcija obuhvata znaajne cifre broja. Podrazumeva se da iza prve od znaajnih cifara dolazi decimalna taka. Eksponent je podeen dodavanjem konstante podeavanja, da se ne bi moralo voditi rauna o njegovom predznaku i da bi se olakalo poreenje mainskih normalizovanih formi. Prethodni broj u mainskoj normalizovanoj formi sa 10 mesta (MNF10) izgleda: 0031270000MNF10 Posmatrano s leva u desno, prva cifra prethodnog broja sadri predznak (0 : +, 1 : -). Sledee dve cifre sadre podeeni eksponent. Dva mesta omoguuju da eksponent bude u rasponu od -9 do +9. On se podeava dodavanjem konstante podeavanja 10==102-1, pa je raspon podeenog eksponenta od 1 do 19. Ovako podeeni eksponent omoguuje poreenje mainskih normalizovanih formi bez njihovog raspakivanja, pri emu se mora uraunati uticaj predznaka na rezultat poreenja. Preostalih sedam cifara sadri frakciju. Podrazumeva se da iza prve cifre frakcije dolazi decimalna taka. Predstava realnih brojeva u ogranienom broju cifara ograniava i dijapazon realnih brojeva koji se mogu predstaviti, ali i preciznost, jer iz datog dijapazona moe da se precizno predstavi samo ogranien broj realnih brojeva. Greka predstave realnih brojeva, koji ne mogu precizno da se predstave, raste sa veli inom eksponenta i kree se od 10-15 do 103 za MNF10. Tolika je razlika apsolutnih vrednosti 2 najmanja susedna realna broja: 0011000000MNF10 (1.010-9) i 0011000001MNF10 (1.00000110-9), odnosno 2 najvea susedna realna broja: 0199999998MNF10 (9.999998109) i 0199999999MNF10 (9.999999109).

15

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

ARITMETIKA MAINSKE NORMALIZOVANE FORME U aritmetici normalizovane forme, predznak, podeeni eksponenti i frakcije se posmatraju odvojeno. Prvo se odredi predznak rezultata. Sabiranje i oduzimanje zapoinje izjednaavanjem eksponenata (radi ispravnog potpisivanja frakcija). Uvek se manji eksponent izjednaava sa veim, uz pomeranje decimalne take u frakciji i, eventualno, odbacivanje prekobrojnih cifara. Zatim sledi sabiranje ili oduzimanje frakcija i, po potrebi, normalizacija rezultata. Tako, sabiranju brojeva: 0031270000MNF10 +0091000001MNF10 (1.2710-7) (1.00000110-1)

obavezno prethodi izjednaavanje eksponenta prvog broja sa eksponentom drugog broja, pri emu se odbacuju prekobrojne cifre frakcije 2 i 7. Tako nastaju brojevi: 0090000001MNF10 (0.00000110-1) (odbaene su prekobrojne cifre 2 i 7) +0091000001MNF10 (1.00000110-1) 0091000002MNF10 (1.00000210-1) Kod mnoenja, eksponenti se sabiraju, uz umanjivanje njihovog zbira za konstantu podeavanja 10, a frakcije se mnoe. Kod deljenja, eksponenti se oduzimaju, uz dodavanje njihovoj razlici konstante podeavanja 10, a frakcije se dele. U oba sluaja, na kraju, eventualno, sledi normalizacija rezultata. Prethodno ilustruje primer mnoenja: 0112000000MNF10 0124000000MNF10 0138000000MNF10 (2.0101) (4.0102) (8.0103)

U aritmetici normalizovane forme do izlaska van opsega (s leva, ali i s desna) dolazi samo u eksponentu, jer se prekobrojne cifre frakcije odbacuju. Odbacivanje prekobrojnih cifara frakcije moe da uzrokuje ozbiljne greke, naroito, ako u operaciji uestvuju realni brojevi koji se veoma razlikuju po apsolutnoj vrednosti. Primer za takvu vrstu greaka prua sabiranje vrlo mnogo malih realnih brojeva. Kada, u toku sabiranja, apsolutna vrednost zbira postane toliko velika, da su sve cifre frakcija preostalih sabiraka prekobrojne, tada u nastavku sabiranja ne dolazi do uveanja ovog zbira, iako on moe biti manji od sume preostalih (zanemarenih) sabiraka.

2.3. BINARNI BROJNI SISTEM


U binarnom brojnom sistemu koriste se samo cifre 0 i 1, njegova baza (radix) je 210, a brojevi se predstavljaju u pozicionoj predstavi. Pri prelasku iz decimalnog u binarni brojni sistem i obratno, neophodna je konverzija brojeva.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

16

POSTUPAK KONVERZIJE BROJEVA Konverzije brojeva iz brojnog sistema s jednom bazom u brojni sistem s drugom bazom se zasnivaju na izjednaavanju pozicionih predstava pomenutih brojeva, radi izdvajanja nepoznatih cifara. Pri tome u ovim predstavama se koriste cifre brojnog sistema u kome se rauna. Postupak konverzije zahteva da se posebno obavlja konverzija celog, a posebno konverzija razlomljenog dela broja. Do izdvajanja nepoznatih binarnih cifara, pri konverziji celog broja iz decimalnog u binarni brojni sistem, dolazi kada se konvertovani broj deli bazom binarnog brojnog sistema. U primeru, koji sledi, koriste se cifre decimalnog brojnog sistema, jer se u njemu rauna: ...+d1101+d0100 610 0 310 1 1 1 0 610 == == == == == == == == ...+b121+b020 ...+b121+b020 |:2 b0 ...+b221+b120 |:2 b1 ...+b321+b220 |:2 b2 1102 (ostatak deljenja) (kolinik) (ostatak deljenja) (kolinik) (ostatak deljenja) (kolinik)

Do izdvajanja nepoznatih binarnih cifara, pri konverziji razlomljenog broja iz decimalnog u binarni brojni sistem, dolazi kada se konvertovani broj mnoi bazom binarnog brojnog sistema. U sledeem primeru koriste se cifre decimalnog brojnog sistema, jer se u njemu rauna: d-110-1+d-210-2+... == 0.37510 0 0.7510 1 0.510 1 0 0.37510 == == == == == == == b-12-1+b-22-2+... b-12-1+b-22-2+... |2 b-1 (celi deo proizvoda) b-22-1+b-32-2+... |2 (razlomljeni deo proizvoda) b-2 (celi deo proizvoda) b-32-1+b-42-2+... |2 (razlomljeni deo proizvoda) b-3 (celi deo proizvoda) (razlomljeni deo proizvoda) 0.0112

17

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Algoritam konverzije razlomljenog broja iz decimalnog u binarni brojni sistem ne mora da ima kraj. To pokazuje primer konvertovanja razlomljenog broja 0.210, prikazan tabelarno (Slika 2.3.1). razlomljeni deo proizvoda 0.2 0.4 0.8 0.6 0.2 proizvod (2) 0.4 0.8 1.6 1.2 0.4 celi deo proizvoda 0 == b-1 0 == b-2 1 == b-3 1 == b-4 0 == b-5

Slika 2.3.1 Konvertovanje razlomljenog broja 0.210 U tabelarno datom primeru (Slika 2.3.1) javlja se beskonana periodinost, pa je rezultat konverzije priblian: 0.210 0.00112 Konverzija celog broja iz binarnog u decimalni brojni sistem se svodi na mnoenje cifara konvertovanog broja bazom binarnog brojnog sistema. U sledeem primeru koriste se cifre decimalnog brojnog sistema, jer se u njemu rauna: ...+b222+b121+b020 X10 X10 X10 X10 X10 X10 610 == == == = = = == == ((...+b2)2+b1) 2+b0 1102 ((b2) 2+b1) 2+b0 b2 == 1 X102+b1 == 12+1 == 3 X102+b0 == 32+0 == 6 6 1102

Konverzija razlomljenog broja iz binarnog u decimalni brojni sistem se svodi na deljenje cifara konvertovanog broja bazom binarnog brojnog sistema. U sledeem primeru koriste se cifre decimalnog brojnog sistema, jer se u njemu rauna:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

18

b-12-1+b-22-2+b-32-3+... == (b-1+(b-2+(b-3+...)/2)/2)/2 X10 X10 X10 X10 X10 X10 X10 == == = = = = = 0.00112 (b-1+(b-2+(b-3+(b-4)/2)/2)/2)/2 b-4 X10/2+b-3 X10/2+b-2 X10/2+b-1 X10/2 0.00112 == == == == == 1 1/2+1 1.5/2+0 0.75/2+0 0.375/2 == == == == 1.5 0.75 0.375 0.1875

0.187510 ==

Poto konverzija 0.210 daje priblino 0.00112, a konverzija 0.00112 daje 0.187510, sledi da je: 0.210 0.187510 odnosno da je greka aproksimacije 0.012510. Za skraeno predstavljanje brojeva iz binarnog brojnog sistema koristi se heksadecimalni brojni sistem, jer jedna heksadecimalna cifra zamenjuje etiri binarne cifre. U heksadecimalnom brojnom sistemu koriste se cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (1010), B (1110), C (1210), D (1310), E (1410) i F (1510). Njegova baza je 1610, a brojevi se predstavljaju u pozicionoj predstavi. Konverzija broja iz binarnog u heksadecimalni brojni sistem se sastoji od zamena po etiri binarne cifre jednom heksadecimalnom cifrom. Pre toga se binarni broj dopuni s leva vodeim nulama do broja cifara koji je deljiv sa 4: 10111112 == 5F16 010111112 == 027+126+025+124+123+122+121+120 == (023+122+021+120)24+(123+122+121+120)20 == 010124+111120 == 5161+F160 (eksponenti i baza 16 su prikazani u decimalnom brojnom sistemu). Konverzija broja iz heksadecimalnog u binarni brojni sistem se sastoji od zamene svake heksadecimalne cifre sa 4 odgovarajue binarne cifre.

19

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

2.4. ARITMETIKA OGRANIENOG BROJA CIFARA U BINARNOM BROJNOM SISTEMU


I u binarnom brojnom sistemu sabiranje i oduzimanje neoznaenih celih brojeva se sastoji od direktne primene tablice sabiranja na parove korespondentnih cifara. U narednim primerima se smatra da je broj binarnih cifra ogranien na 8: 00000101 +00000011 00001000 (5) (3) (8) 00000101 -00000011 00000010 (5) (3) (2)

KOMPLEMENT 2 PREDSTAVA OZNAENIH CELIH BROJEVA Za oznaene cele brojeve koristi se komplement 2 predstava, radi izbegavanja komplikacija kod njihovog sabiranja i oduzimanja. Komplement 2 predstava pozitivnih celih brojeva nastaje njihovim dopunjavanjem s leva vodeim nulama (do ukupnog broja cifara): 00000010 komplement 2 predstava broja +2

Komplement 2 predstava negativnih celih brojeva nastaje dodavanjem jedinice komplement 1 predstavi negativnih celih brojeva. Komplement 1 predstava negativnih celih brojeva nastaje tako, to se u potpunoj apsolutnoj vrednosti negativnih celih brojeva svaka nula zameni jedinicom i obrnuto: 00000010 11111101 11111110 potpuna apsolutna vrednost broja -2 komplement 1 predstava broja -2 komplement 2 predstava broja -2

U nastavku slede neke vrednosti osmocifrene komplement 2 predstave oznaenih celih brojeva (njima korespondentne decimalne vrednosti, sa predznakom, su navedene u zagradama): 01111111 01111110 ... 00000001 00000000 11111111 ... 10000001 10000000 (+127) (+126) (+1) (0) (-1) (-127) (-128)

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

20

I u komplement 2 predstavi, broj negativnih brojeva je za jedan vei od broja pozitivnih brojeva. IZLAZAK VAN OPSEGA Kod neoznaenih celih brojeva, pojava prenosa sa najznaajnijeg mesta ukazuje na izlazak van opsega. Kod oznaenih celih brojeva u komplement 2 predstavi, pojava neodgovarajue cifre na najznaajnijem mestu rezultata ukazuje na izlazak van opsega (na primer, kod sabiranja dva pozitivna cela broja, pojava cifre 1 na najznaajnijem mestu zbira nedvosmisleno ukazuje na izlazak van opsega). Svi sluajevi izlaska van opsega, kod sabiranja oznaenih celih brojeva u komplement 2 predstavi, mogu se pregledno prikazati tabelarno (Slika 2.4.1). najznaajniji bit najznaajniji bit najznaajniji bit izlazak van prvog sabirka drugog sabirka zbira opsega (S1) (S2) (Z) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 Slika 2.4.1 Izlasci van opsega kod sabiranja oznaenih celih brojeva u komplement 2 predstavi U tabeli (Slika 2.4.1), cifre iz prve tri kolone se interpretiraju kao celi brojevi, a cifre iz etvrte kolone se interpretiraju kao logike vrednosti. Ako se cifre u sve etiri kolone interpretiraju kao logike vrednosti, tada prve tri kolone sadre argumente, a poslednja vrednosti logike funkcije izlaska van opsega kod sabiranja: ((~S1)&(~S2)&Z)|(S1&S2&(~Z)) Svi sluajevi izlaska van opsega, kod oduzimanja oznaenih celih brojeva u komplement 2 predstavi, mogu se pregledno prikazati tabelarno (Slika 2.4.2).

21

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

najznaajniji bit umanjenika (U1) 0 0 0 0 1 1 1 1

najznaajniji bit umanjioca (U2) 0 0 1 1 0 0 1 1

najznaajniji bit razlike (R) 0 1 0 1 0 1 0 1

izlazak van opsega 0 0 0 1 1 0 0 0

Slika 2.4.2 Izlasci van opsega kod oduzimanja oznaenih celih brojeva u komplement 2 predstavi U tabeli (Slika 2.4.2), cifre iz prve tri kolone se interpretiraju kao celi brojevi, a cifre iz etvrte kolone se interpretiraju kao logike vrednosti. Ako se cifre u sve etiri kolone interpretiraju kao logike vrednosti, tada prve tri kolone sadre argumente, a poslednja vrednosti logike funkcije izlaska van opsega kod oduzimanja: ((~U1)&U2)&R)|(U1&(~U2)&(~R)) Interpretacija rezultata aritmetikih operacija zavisi od interpretacije brojeva. Na primer, kod sabiranja neoznaenih celih brojeva: 111111112 +111111112 111111102 (25510) (25510) (25410)

dolazi do izlaska van opsega, jer se javlja prenos sa najznaajnijeg mesta binarnog rezultata. Kod sabiranja neoznaenih celih brojeva: 010000002 +010000002 100000002 (6410) (6410) (12810)

ne dolazi do izlaska van opsega, jer se ne javlja prenos sa najznaajnijeg mesta binarnog rezultata. Ali, izmena interpretacije brojeva u prethodna dva primera povlai za sobom i izmenu interpretacije rezultata. Tako, kod sabiranja oznaenih celih brojeva u komplement 2 predstavi:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

22

111111112 +111111112 111111102

(-110) (-110) (-210)

ne dolazi do izlaska van opsega, jer je predznak binarnog rezultata ispravan. Prenos sa najznaajnijeg mesta binarnog rezultata se zanemaruje, jer je re o komplement 2 predstavi brojeva. Slino, kod sabiranja oznaenih celih brojeva u komplement 2 predstavi: 010000002 +010000002 100000002 (+6410) (+6410) (-12810)

dolazi do izlaska van opsega, jer se javlja neodgovarajua cifra na najznaajnijem mestu rezultata. POREENJE CELIH BROJEVA I u binarnom brojnom sistemu, odreivanje relacija se svodi na oduzimanje desnog operanda relacije od levog i na zakljuivanje o vaenju relacije na osnovu toga: 1. da li je razlika jednaka nuli ili je razliita od nule, 2. da li je razlika negativna ili pozitivna, 3. da li se, pri oduzimanju neoznaenih celih brojeva, javlja izlazak van opsega u obliku prenosa ili ne, odnosno, 4. da li, pri oduzimanju oznaenih celih brojeva, razlika izlazi van opsega ili ne. Za opisivanje karakteristika razlike zgodno je uvesti posebne logike promenljive: N (nula), M (minus), P (prenos) i V (van opsega). Tako logika promenljiva N sadri 1, ako je razlika jednaka nuli. U suprotnom, ona sadri 0. Ova logika promenljiva je jednaka negaciji logikog ili svih cifara razlike. Logika promenljiva M sadri 1, ako je razlika negativna. U suprotnom, ona sadri 0. Ova logika promenljiva je jednaka najznaajnijoj cifri razlike. Logika promenljiva P sadri 1, ako se pri oduzimanju neoznaenih celih brojeva javi prenos. U suprotnom, ona sadri 0. Ova logika promenljiva je jednaka prenosu sa najznaajnijeg mesta pri oduzimanju. Logika promenljiva V sadri 1, ako, pri oduzimanju oznaenih celih brojeva, razlika izae van opsega. U suprotnom, ona sadri 0. Ova logika promenljiva je jednaka vrednosti logike funkcije izlaska van opsega kod oduzimanja. Pri odreivanju relacija, svakoj od prethodne etiri logike promenljive dodeljuje se, po oduzimanju, odgovarajua vrednost. To se radi zbog vieznane interpretacije operanada relacija. Meutim, zakljuak o vaenju relacije se oslanja samo na logike promenljive koje su znaajne za vaeu interpretaciju poreenih

23

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

vrednosti. To se moe pokazati tabelama (Slika 2.4.3) i (Slika 2.4.4). Tabela (Slika 2.4.3) sadri pregled logikih izraza od ije vrednosti zavisi vaenje pojedinih relacija za neoznaene brojeve. relacija vai == != < >= > <= ako je taan logiki izraz N ~N P ~P (~P)&(~N) P|N

Slika 2.4.3 Prikaz uslova vaenja relacija za neoznaene brojeve Tabela (Slika 2.4.4) sadri pregled logikih izraza od ije vrednosti zavisi vaenje pojedinih relacija za oznaene brojeve. relacija vai == != < >= > <= ako je taan logiki izraz N ~N M^V ~(M^V) ~(M^V)&(~N) (M^V)|N

Slika 2.4.4 Prikaz uslova vaenja relacija za oznaene brojeve Razumevanje logikih izraza, navedenih u ovoj tabeli (Slika 2.4.4) za relacije <, >=, >, i <=, zahteva posmatranje sluajeva u kojima su oba operanda pozitivna, odnosno negativna, odnosno u kojima su operandi razliitih predznaka. Tabelarni pregled karakteristinih sluajeva vaenja relacije < sadri Slika 2.4.5. levi operand + + + desni operand + + + < da da da ne ne ne M 1 1 0 1 0 0 1 0 V 0 0 1 0 0 0 1 0

Slika 2.4.5 Pregled karakteristinih sluajeva vaenja relacije <

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

24

Relacija < vai, ako su oba njena operanda pozitivna, a levi je manji od desnog. Tada je razlika uvek negativna i nije van opsega (M == 1 i V == 0). Relacija < vai i kada je njen levi operand negativan, a desni pozitivan. Tada je razlika uvek ili negativna i nije van opsega (M == 1 i V == 0), ili pozitivna i van opsega (M == 0 i V == 1). Relacija < vai i ako su njena oba operanda negativna, a levi je manji od desnog. Tada je razlika uvek negativna i nije van opsega (M == 1 i V == 0). Relacija < ne vai, kada su oba njena operanda pozitivna, a levi nije manji od desnog. Tada je razlika uvek pozitivna i nije van opsega (M == 0 i V == 0). Relacija < ne vai ni ako je njen levi operand pozitivan, a desni negativan. Tada je razlika uvek ili pozitivna i nije van opsega (M == 0 i V == 0), ili negativna i van opsega (M == 1 i V == 1). Relacija < ne vai ni kada su njena oba operanda negativna, a levi nije manji od desnog. Tada je razlika uvek pozitivna i nije van opsega (M == 0 i V == 0). VIESTRUKA PRECIZNOST I u binarnom brojnom sistemu, aritmetika ogranienog broja cifara zahteva viestruku preciznost, kada se operacije odnose na vrednosti iji broj cifara je vei od broja cifara lokacije. I u ovom sluaju, delovi vrednosti se uvaju u raznim lokacijama, a operacije se obavljaju za deo po deo ovih vrednosti (idui od manje znaajnih ka znaajnijim delovima vrednosti). ZAKONI ARITMETIKE Takoe, ni u binarnom brojnom sistemu za aritmetiku ogranienog broja cifara ne vae zakoni aritmetike, jer je, zbog mogunosti izlaska van opsega, rezultat zavisan od redosleda obavljanja operacija. To potkrepljuje sledei primer za osmobitnu preciznost: (100001002+101000002)-100000002 != 100001002+(101000002-100000002) u kome su navedeni neoznaeni celi brojevi (u toku formiranja levog zbira dolazi do izlaska van opsega, pa je on u optem sluaju razliit od desnog zbira, u kome se ne javlja izlazak van opsega).

2.5. PREDSTAVLJANJE VREDNOSTI REALNOG TIPA U BINARNOM BROJNOM SISTEMU


Mainska normalizovana forma se koristi i u binarnom brojnom sistemu za predstavljanje vrednosti realnog tipa. U nastavku se koristi 8 cifarskih pozicija za mainsku normalizovanu formu (MNF8). U njoj, gledajui s leva u desno, prva pozicija sadri predznak (0 : +, 1 : -). Naredne 4 pozicije sadre podeeni eksponent. Kao konstanta podeavanja koristi se vrednost 8==10002==24-1. Ona se sabira sa eksponentima koji mogu biti u rasponu od -8 do 7, pa se podeeni eksponenti nalaze u dijapazonu od 00002==0 do 11112==15. Poslednje 3 pozicije

25

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

sadre tri manje znaajne cifre frakcije. Preostala, najznaajnija cifra frakcije je uvek 1, jer, kod normalizovane forme, taka dolazi iza prve znaajne cifre frakcije, razliite od 0. Zato se ova cifra ne prikazuje u frakciji. Znai, frakcija je uvek razliita od nule, jer se podrazumeva da je njena najznaajnija cifra 1. Zato se za predstavljanje nule rezervie nulta vrednost podeenog eksponenta. Slede primeri brojeva, predstavljenih u MNF8: 10101000MNF8==-1.00022-3==-0.12510 00000000MNF8==0.0 01000000MNF8==+1.000220==+1.010 01001011MNF8==+1.011221==+2.7510 01110001MNF8==+1.001226==+72.010 I u binarnom brojnom sistemu predstava realnih brojeva u ogranienom broju cifara ograniava i dijapazon realnih brojeva, koji se mogu predstaviti, i preciznost, jer iz datog dijapazona moe da se precizno predstavi samo ogranien broj realnih brojeva. Pri tome, greka predstave realnih brojeva, koji ne mogu precizno da se predstave, raste sa veliinom eksponenta i kree se od 2-10 do 24 za MNF8. Prethodno uvedena pravila za aritmetiku normalizovane forme vae i u binarnom brojnom sistemu. Znai, do izlaska van opsega (s leva, ali i s desna) dolazi samo u eksponentu, jer se prekobrojne cifre frakcije odbacuju. Odbacivanje prekobrojnih cifara frakcije moe da uzrokuje ozbiljne greke. VIEZNANA INTERPRETACIJA CELIH BROJEVA Kodiranje vrednosti raznih tipova celim brojevima stvara mogunost vieznane interpretacije celih brojeva. Na primer, celi binarni broj 01001011 se moe interpretirati kao celi decimalni broj 75, ali i kao realan decimalni broj 2.75. Zbog razliite interpretacije, neophodna je konverzija, kada se vrednost jednog tipa dodeljuje promenljivoj drugog tipa. Na primer, ako se, bez konverzije, realnoj promenljivoj dodeli binarni broj 01001011, koji odgovara celom decimalnom broju 75, tada e ova promenljiva dobiti vrednost koja odgovara realnom decimalnom broju 2.75, jer binarni broj 01001011 predstavlja i MNF8 za dotini realni broj (+1.011221). Zato je potrebno, pre dodele, izvriti konverziju binarne vrednosti 01001011: 7510==10010112==1.0010112261.001226==72.010==01110001MNF8 Znai, nakon konverzije, realna promenljiva e dobiti vrednost koja odgovara realnom decimalnom broju 72.0, to je priblina vrednost realnog decimalnog broja 75.0. Navedeni primer ukazuje da nije uvek mogue precizno konvertovati vrednost celog tipa u MNF, ak i kada se koristi isti broj bita za njihovo reprezentovanje.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

26

Konverzija je neophodna i u obrnutom smeru. Na primer prilikom dodele celobrojnoj promenljivoj vrednosti 01110001MNF8, koji odgovara realnom decimalnom broju 72.0, ova promenljiva e dobiti vrednost koja odgovara celom decimalnom broju 113. Zato je potrebno, pre dodele, izvriti konverziju vrednosti 01110001MNF8: 72.010==01110001MNF8 ==1.001226==1001000.02==10010002==7210 Vano je naglasiti da nije uvek mogua konverzija iz MNF u celi tip, ak i kada se koristi isti broj bita za njihovo reprezentovanje, jer MNF pokriva vei dijapazon vrednosti od celog tipa.

2.6. PITANJA
1. ta omoguuje komplement predstava oznaenih brojeva? 2. Kako komplement predstava pojednostavljuje procesor? 3. Kada se (ne) zanemaruje prenos sa najznaajnije pozicije prilikom aritmetike celih brojeva? 4. ta ukazuje na izlazak van opsega? 5. Koje delove sadri mainska normalizovana forma? 6. Zato je uvedena konstanta podeavanja (kako se ona koristi)? 7. Kako se obavlja aritmetika brojeva predstavljenih mainskom normalizovanom formom? 8. Gde dolazi do izlaska van opsega u aritmetici mainske normalizovane forme (u eksponentu ili frakciji)? 9. Gde se odbacuju prekobrojne cifre u aritmetici mainske normalizovane forme (u eksponentu ili frakciji)? 10. Kako se obavljaju konverzije brojeva iz decimalnog u binarni brojni sistem (i obrnuto)? 11. Koji binarni broj se dobije nakon konverzije decimalnog broja 4.25? 12. Koji decimalni broj se dobije nakon konverzije binarnog broja 100.01? 13. Koji heksadecimalni broj se dobije nakon konverzije binarnog broja 11010? 14. Koji binarni broj se dobije nakon konverzije heksadecimalnog broja 1A? 15. Koja je komplement 2 predstava binarnog broja -100? 16. Da li se prilikom sabiranja binarnih brojeva 01000100 i 01110000 javlja izlazak van opsega (za obe interpretacije ovih brojeva)? 17. Na osnovu ega se odreuje vaenje relacija izmeu (ne)oznaenih brojeva? 18. Koja je mainska normalizovana forma (MNF8) binarnog broja -101? 19. Koji binarni broj odgovara mainskoj normalizovanoj formi 11010010MNF8?

27

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

3. ASEMBLERSKO PROGRAMIRANJE
3.1. NIVOI PROGRAMIRANJA
Asemblersko programiranje se zasniva na korienju asemblerskih naredbi. Ono se nalazi na viem nivou od mainskog programiranja, koje koristi mainske naredbe. U ovom sluaju vii nivo podrazumeva apstrakciju (zanemarivanje). Tako, u primeru asemblerskog programiranja, apstrakcija znai zamenarivanje mainskih formata naredbi (ije poznavanje je neophodno za mainsko programiranje, a nebitno za asemblersko programiranje). Na jo viem nivou se nalazi programiranje procedurnim programskim jezicima, koje potpuno zanemaruje arhitekturu naredbi, jer se zasniva na vrlo uoptenom modelu raunara. Zato se procedurni programski jezici svrstavaju u grupu programskih jezika visokog nivoa, dok se mainski i asemblersli programski jezici svrstavaju u grupu programskih jezika niskog nivoa. Programiranje programskim jezicima niskog nivoa je tee od programiranja programskim jezicima visokog nivoa, jer zahteva detaljno poznavanje arhitekture naredbi. Razmiljanje na nivou arhitekture naredbi odvlai panju od sutine reavanog problema i tako uzrokuje razne greke. Iz istih razloga su programi, pisani programskim jezicima niskog nivoa, manje pregledni i tei za odravanje nego programi pisani programskim jezicima visokog nivoa. Ali, programiranje na nivou arhitekture naredbi ima i svoje prednosti, jer dozvoljava korienje svih mogunosti raunara. Zato je programiranje programskim jezicima niskog nivoa neizbeno uvek kada je potrebno na poseban nain iskoristiti mogunosti raunara. Mainske jezike je opravdano koristiti samo ako ne postoje prevodioci za asemblerske ili proceduralne programske jezike (asembleri i kompajleri). Poznavanje mainskih jezika je neophodno i za pravljenje pomenutih prevodilaca. Asemblerske jezike je opravdano koristiti, ne samo kada ne postoje prevodioci za proceduralne programske jezike (kompajleri) ili kada se ovakvi prevodioci prave, nego i u sluajevima koji zahtevaju da se mogunosti raunara iskoriste do krajnjih granica (za ta je neophodno vladanje arhitekturom naredbi koju sakrivaju programski jezici visokog nivoa). Radi olakavanja asemblerskog programiranja, razvoj asemblerskih programa je uputno zapoeti preciziranjem algoritma. Za to je zgodno koristiti, kad god je mogue, sredstva tipina za programske jezike visokog nivoa. Nakon preciziranja algoritma, panja se moe potpuno koncentrisati na izraavanje algoritma asemblerskim naredbama. Ovakav pristup asemblerskom programiranju smanjuje mogunost greke, jer u svakom momentu ograniava broj detalja o kojima se mora voditi rauna. Arhitektura naredbi, koju odraava svaki asemblerski jezik, se uvek odnosi na odreen procesor, pa se zato svaki asemblerski jezik vezuje za neki procesor. U ovoj knjizi je to hipotetski procesor, nazvan KONCEPT, ije ime ukazuje da je

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

28

njegova prevashodna namena da omogui shvatanje principa na kojima se zasniva rad raunara.

3.2. ARHITEKTURA NAREDBI PROCESORA KONCEPT


Memorija procesora KONCEPT se sastoji od lokacija koje sadre po 16 bita. Krajnje desni bit lokacije (oznaen indeksom 0, na primer B0) odgovara najmanje znaajnoj binarnoj cifri, a krajnje levi bit lokacije (oznaen indeksom 15 na primer B15) odgovara najznaajnijoj binarnoj cifri. Pristupanje memorijskoj lokaciji podrazumeva pristupanje svim njenim bitima. 16 bita omoguuje prikaz 216 razliitih binarnih brojeva. Ako svaki od njih predstavlja adresu samo jedne memorijske lokacije, tada ukupno ima 216 adresa i 216 njima odgovarajuih memorijskih lokacija procesora KONCEPT. Adrese svih moguih memorijskih lokacija obrazuju adresni prostor procesora KONCEPT. Znai adresni prostor procesora KONCEPT obuhvata 216 razliitih adresa i njima pripadnih lokacija (u optem sluaju adresni prostor procesora obuhvata 2n razliitih adresa/lokacija, ako se adrese sastoje od po n bita). Procesor KONCEPT ima ukupno 16 registara opte namene, oznaenih kao %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14 i %15. Svaki od registara opte namene ovog procesora je organizovan kao memorijska lokacija. Procesor KONCEPT ima i status registar, koji je takoe organizovan kao memorijska lokacija. Njegov (najmanje znaajan) bit SR0 sadri logiku promenljivu N (nula), bit SR1 logiku promenljivu M (minus), bit SR2 logiku promenljivu P (prenos), a bit SR3 logiku promenljivu V (van opsega). Procesor KONCEPT podrava neposredno, direktno, registarsko, posredno i indeksno adresiranje. NAREDBE ZA CELOBROJNU ARITMETIKU U repertoaru naredbi procesora KONCEPT nalaze se naredbe za celobrojnu aritmetiku: SABERI, SABERI_P, DODAJ_1, ODUZMI, ODUZMI_P, ODBIJ_1 i UPOREDI. SABERI je aritmetika naredba, koja omoguuje sabiranje cele vrednosti, odreene prvim (ulaznim) operandom (PO), sa celom vrednou, odreenom drugim (ulaznim) operandom (DO). Zbir se odlae u lokaciju, odreenu prvim (sada izlaznim) operandom. Tabela (Slika 3.2.1) opisuje sabiranje korespondentnih bita prvog i drugog operanda, oznaenih kao POi i DOi, pri emu se zbir i prenos oznaavaju kao Zi i Pi+1, a prenos iz sabiranja prethodnog para bita kao Pi (i = 0, ... , 15):

29

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

POi 0 0 0 0 1 1 1 1

DOi 0 0 1 1 0 0 1 1

Pi 0 1 0 1 0 1 0 1

Zi 0 1 1 0 1 0 0 1

Pi+1 0 0 0 1 0 1 1 1

Slika 3.2.1 Tabela sabiranja parova bita Za P0 se smatra da je uvek 0. Ako se cifre iz svih pet kolona prethodne tabele interpretiraju kao logike vrednosti, tada iz prethodne tabele sledi vaenje sledeih logikih funkcija: Zi = POi^DOi^Pi Pi+1 = ((POi|DOi)&Pi)|(POi&DOi) Nakon sabiranja, menjaju se vrednosti logikih promenljivih N, M, P i V. Njihove nove vrednosti odreuju logike funkcije: N = ~(Z15|Z14| Z13|Z12| Z11|Z10| Z9|Z8| Z7|Z6| Z5|Z4| Z3|Z2| Z1|Z0) M = Z15 P = P16 V = ((~PO15)&(~DO15)&Z15)|(PO15&DO15&(~Z15)) (vrednost logike promenljive V odreuje logika funkcija izlaska van opsega kod sabiranja). SABERI_P je aritmetika naredba, koja omoguuje sabiranje cele vrednosti, odreene prvim (ulaznim) operandom (PO), sa celim vrednostima, odreenim drugim (ulaznim) operandom (DO) i zateenim sadrajem logike promenljive P (prenosom). Zbir se odlae u lokaciju, odreenu prvim (sada izlaznim) operandom. Ova naredba omoguuje sabiranje u viestrukoj preciznosti, jer u zbir ukljuuje i zateeni prenos, preostao iza prethodnog sabiranja. Naredba SABERI_P se razlikuje od naredbe SABERI samo po tome to kao vrednost zateenog prenosa P0 uzima vrednost logike promenljive P. DODAJ_1 je aritmetika naredba, koja se razlikuje od naredbe SABERI samo po tome to se kao vrednost drugog (ulaznog) operanda koristi konstanta 1, pa se drugi oprand ne navodi. ODUZMI je aritmetika naredba, koja omoguuje oduzimanje od cele vrednosti - umanjenika, odreene prvim (ulaznim) operandom (PO), cele vrednosti

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

30

- umanjioca, odreene drugim (ulaznim) operandom (DO). Razlika se odlae u lokaciju, odreenu prvim (sada izlaznim) operandom. Tabela (Slika 3.2.2) opisuje oduzimanje korespondentnih bita prvog i drugog operanda, oznaenih kao POi i DOi, pri emu se razlika i prenos oznaavaju kao Ri i Pi+1, a prenos iz oduzimanja prethodnog para bita kao Pi (i = 0, ... , 15): POi 0 0 0 0 1 1 1 1 DOi 0 0 1 1 0 0 1 1 Pi 0 1 0 1 0 1 0 1 Ri 0 1 1 0 1 0 0 1 Pi+1 0 1 1 1 0 0 0 1

Slika 3.2.2 Tabela oduzimanja parova bita Za P0 se smatra da je uvek 0. Ako se cifre iz svih pet kolona prethodne tabele interpretiraju kao logike vrednosti, tada iz prethodne tabele sledi vaenje sledeih logikih funkcija: Ri = POi^DOi^Pi Pi+1 = ((DOi|Pi)&(~POi))|(DOi&Pi) Nakon oduzimanja, menjaju se i vrednosti logikih promenljivih N, M, P i V. Njihove nove vrednosti odreuju logike funkcije: N = ~(R15|R14| R13|R12| R11|R10| R9|R8| R7|R6| R5|R4| R3|R2| R1|R0) M = R15 P = P16 V = ((~PO15)&DO15&R15)|(PO15&(~DO15)&(~R15)) (vrednost logike promenljive V odreuje logika funkcija izlaska van opsega kod oduzimanja). ODUZMI_P je aritmetika naredba, koja omoguuje oduzimanje od cele vrednosti, odreene prvim (ulaznim) operandom (PO), celih vrednosti, odreenih drugim (ulaznim) operandom (DO) i zateenim sadrajem logike promenljive P (prenosom). Razlika se odlae u lokaciju, odreenu prvim (sada izlaznim) operandom. Ova naredba omoguuje oduzimanje u viestrukoj preciznosti, jer u razliku ukljuuje i zateeni prenos, preostao iza prethodnog oduzimanja. Naredba

31

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

ODUZMI_P se razlikuje od naredbe ODUZMI samo po tome to kao vrednost zateenog prenosa P0 uzima vrednost logike promenljive P. ODBIJ_1 je aritmetika naredba, koja se razlikuje od naredbe ODUZMI samo po tome to se kao vrednost drugog (ulaznog) operanda koristi konstanta 1, pa se drugi oprand ne navodi. UPOREDI je aritmetika naredba koja omoguuje oduzimanje od cele vrednosti, odreene prvim (ulaznim) operandom (PO), cele vrednosti, odreene drugim (ulaznim) operandom (DO) i postavljanje vrednosti logikih promenljivih N, M, P i V u skladu sa razlikom. Izvravanje ove naredbe omoguuje utvrivanje koja relacija vai izmeu vrednosti njenih ulaznih operanada, tako to u skladu sa razlikom postavlja vrednosti logikih promenljivih N, M, P i V (za odreivanje vrednosti ovih logikih promenljivih koriste se iste logike funkcije kao kod aritmetike naredbe ODUZMI). NAREDBE ZA RUKOVANJE BITIMA Procesor KONCEPT podrava logike naredbe: I, ILI i NE, koje omoguuju pristupanje pojedinim bitima lokacija. Pristupanje pojedinim bitima lokacija je osnovna namena i naredbi LEVO i DESNO, pa se one svrstavaju u istu grupu sa logikim naredbama. I je logika naredba, koja omoguuje odreivanje logikog i korespondentnih bita binarnih vrednosti, odreenih prvim (ulaznim) operandom (PO) i drugim (ulaznim) operandom (DO). Rezultat izvravanja ove naredbe se odlae u lokaciju, odreenu prvim (sada izlaznim) operandom. Obrazovanja bita rezultata (Ri) od bita ulaznih operanda (POi i DOi, za i = 0, ... , 15), opisuje logika funkcija: Ri = POi&DOi Nakon izvravanja naredbe I, menjaju se i vrednosti logikih promenljivih N, M, P i V. Njihove nove vrednosti odreuju logike funkcije: N = ~(R15|R14| R13|R12| R11|R10| R9|R8| R7|R6| R5|R4| R3|R2| R1|R0) M = R15 P=0 V=0 ILI je logika naredba, koja omoguuje odreivanje logikog ili korespondentnih bita binarnih vrednosti, odreenih prvim (ulaznim) operandom (PO) i drugim (ulaznim) operandom (DO). Rezultat izvravanja ove naredbe se odlae u lokaciju, odreenu prvim (sada izlaznim) operandom. Obrazovanja bita rezultata (Ri) od bita ulaznih operanda (POi i DOi, za i = 0, ... , 15) opisuje logika funkcija:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

32

Ri = POi|DOi Nakon izvravanja naredbe ILI, menjaju se i vrednosti logikih promenljivih N, M, P i V. Njihove nove vrednosti odreuju logike funkcije: N = ~(R15|R14| R13|R12| R11|R10| R9|R8| R7|R6| R5|R4| R3|R2| R1|R0) M = R15 P=0 V=0 NE je logika naredba, koja omoguuje negiranje bita binarne vrednosti, odreene prvim (ulaznim) operandom (PO). Rezultat izvravanja ove naredbe se odlae u lokaciju, odreenu prvim (sada izlaznim) operandom. Obrazovanje bita rezultata (Ri) od bita ulaznog operanda (POi, za i = 0, ... , 15) opisuje logika funkcija: Ri = ~POi Nakon izvravanja naredbe NE, menjaju se i vrednosti logikih promenljivih N, M, P i V. Njihove nove vrednosti odreuju logike funkcije: N = ~(R15|R14| R13|R12| R11|R10| R9|R8| R7|R6| R5|R4| R3|R2| R1|R0) M = R15 P=0 V=0 LEVO je naredba, koja omoguuje pomeranje svih bita binarne vrednosti, odreene prvim (ulaznim) operandom (PO), za jedno mesto u levo. Rezultat izvravanja ove naredbe se odlae u lokaciju odreenu prvim (sada izlaznim) operandom. Rezultat pomeranja u levo bita binarne vrednosti ulaznog operanda je jednak njenom mnoenju brojem 2, pa naredba LEVO omoguuje mnoenje tim brojem. Obrazovanje bita rezultata (Ri) od bita ulaznog operanda (POi, za i = 0, ... , 14) opisuju logike funkcije: Ri+1 = POi R0 = 0 Nakon izvravanja naredbe LEVO, menjaju se i vrednosti logikih promenljivih N, M, P i V. Njihove nove vrednosti odreuju logike funkcije:

33

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

N = ~(R15|R14| R13|R12| R11|R10| R9|R8| R7|R6| R5|R4| R3|R2| R1|R0) M = R15 P = PO15 V = PO15^ PO14 DESNO je naredba, koja omoguuje pomeranje svih bita binarne vrednosti, odreene prvim (ulaznim) operandom (PO), za jedno mesto u desno. Rezultat izvravanja ove naredbe se odlae u lokaciju odreenu prvim (sada izlaznim) operandom. Rezultat pomeranja u desno bita binarne vrednosti ulaznog operanda je jednak njenom deljenju brojem 2, pa naredba DESNO omoguuje deljenje oznaenih brojeva brojem 2 (ako je deljenik negativan, tada se ispravan koli nik dobije tek kada se rezultatu pomeranja doda sadraj koga, nakon pomeranja, ima logika promenljiva P). Obrazovanje bita rezultata (Ri) od bita ulaznog operanda (POi, za i = 0, ... , 14) opisuju logike funkcije: Ri = POi+1 R15 = PO15 Nakon izvravanja naredbe DESNO, menjaju se i vrednosti logikih promenljivih N, M, P i V. Njihove nove vrednosti odreuju logike funkcije: N = ~(R15|R14| R13|R12| R11|R10| R9|R8| R7|R6| R5|R4| R3|R2| R1|R0) M = R15 P = PO0 V=0 NAREDBE PREBACIVANJA Procesor KONCEPT podrava vie oblika naredbe prebacivanja PREBACI, koji omoguuju prebacivanje sadraja izmeu registara procesora i memorijskih lokacija. PREBACI je naredba, koja omoguuje da se u lokaciju, odreenu prvim (izlaznim) operandom, prebaci vrednost, odreena drugim (ulaznim) operandom. Izvravanje ove naredbe ne menja vrednosti logikih promenljivih N, M, P i V. UPRAVLJAKE NAREDBE Mainski oblici prethodnih naredbi se smetaju, u redosledu izvravanja, u memorijske lokacije sa uzastopnim rastuim adresama. Zahvaljujui tome, adrese ovakvih memorijskih lokacija, koje su ujedno i adrese (mainskih) naredbi, smetenih u dotine memorijske lokacije, ukazuju na redosled izvravanja ovih naredbi. Znai pomenute naredbe se izvravaju u rastuem redosledu svojih adresa. Ovakav redosled izvravanja naredbi je nepromenljiv i nije podesan za sluajeve u kojima obrada podataka zavisi od vrednosti obraivanih podataka. Kada obrada

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

34

podataka zavisi od vrednosti obraivanih podataka, potrebno je da se redosled izvravanja naredbi odreuje dinamiki (u toku izvravanja). Upravo to omoguuju uslovne i bezuslovne upravljake naredbe. Procesor KONCEPT podrava vie uslovnih upravljakih naredbi. Jedini operand svake uslovne upravljake naredbe odreuje adresu ciljne naredbe koja se izvrava nakon izvravanja pomenute uslovne upravljake naredbe i to samo ako je ispunjen uslov ove uslovne upravljake naredbe. U suprotnom, izvrava se mainska naredba koja sledi iza pomenute uslovne upravljake naredbe. Slika 3.2.3 sadri tabelu sa oznakama svih uslovnih upravljakih naredbi i logike izraze koji odreuju uslov svake od ovih naredbi: Oznaka uslovne upravljake naredbe SKOI_ZA_== ili SKOI_ZA_N SKOI_ZA_!= ili SKOI_ZA_NE_N SKOI_ZA_< ili SKOI_ZA_P SKOI_ZA_>= ili SKOI_ZA_NE_P SKOI_ZA_> SKOI_ZA_<= SKOI_ZA__< SKOI_ZA__>= SKOI_ZA__> SKOI_ZA__<= SKOI_ZA_M SKOI_ZA_NE_M SKOI_ZA_V SKOI_ZA_NE_V uslov uslovne upravljake naredbe N ~N P ~P (~P)&(~N) P|N M^V ~(M^V) (~(M^V))&(~N) (M^V) |N M ~M V ~V Slika 3.2.3 Pregled uslovnih upravljakih naredbi Oznake uslovnih upravljakih naredbi, koje se nalaze u istom redu tabele (Slika 3.2.3), predstavljaju sinonime. Jedini rezultat izvravanja svake od uslovnih upravljakih naredbi je, eventualno, izmena redosleda izvravanja naredbi, dok vrednosti logikih promenljivih N, M, P i V ostaju neizmenjene. Zbog uloge koju imaju za uslovne naredbe, logike promenljive N, M, P i V se zajedno nazivaju i uslovni biti (condition codes). Za uslovne upravljake naredbe nije vano kako i kada su postavljeni uslovni biti. Ako je vrednosti ovih bita postavilo izvravanje naredbe UPOREDI, tada

35

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

uslovne upravljake naredbe SKOI_ZA_== SKOI_ZA_!=, SKOI_ZA_<, SKOI_ZA_>=, SKOI_ZA_> i SKOI_ZA_<= omoguuju dinamike izmene redosleda izvravanja naredbi, zavisno od vaenja relacija za neoznaene cele brojeve, a uslovne upravljake naredbe SKOI_ZA_==, SKOI_ZA_!=, SKOI_ZA__<, SKOI_ZA__>=, SKOI_ZA__> i SKOI_ZA__<= omoguuju isto za oznaene cele brojeve. Procesor KONCEPT podrava bezuslovne upravljake naredbe: SKOI, POZOVI i NATRAG. Bezuslovna upravljaka naredba SKOI ima jedan operand. On odreuje adresu ciljne naredbe koja se izvrava nakon izvravanja naredbe SKOI. Jedini rezultat izvravanja upravljake naredbe SKOI je izmena redosleda izvravanja naredbi (vrednosti uslovnih bita ostaju neizmenjene). Bezuslovna upravljaka naredba POZOVI ima jedan operand. On odreuje adresu ciljne naredbe koja se izvrava nakon izvravanja naredbe POZOVI. Pored izmene redosleda izvravanja naredbi, izvravanje upravljake naredbe POZOVI menja i sadraj registra %15, tako to u njega smeta adresu naredbe koja sledi iza naredbe POZOVI. Adresa, smetena u registar %15, se naziva povratna adresa (return address), jer omoguuje da, nakon odlaska na izvravanje ciljne naredbe (koju odreuje operand naredbe POZOVI), usledi povratak na izvravanje naredbe koja sledi iza naredbe POZOVI. Jedini rezultat izvravanja upravljake naredbe POZOVI je izmena redosleda izvravanja naredbi i smetanje povratne adrese u registar %15 (vrednosti uslovnih bita ostaju neizmenjene). Bezuslovna upravljaka naredba NATRAG nema operanada. Jedini rezultat izvravanja ove naredbe je izmena redosleda izvravanja naredbi, tako da se izvravanje nastavlja od naredbe iju adresu sadri registar %15 (vrednosti uslovnih bita ostaju neizmenjene). Podrazumeva se da registar %15 sadri povratnu adresu, koju je prethodno pripremilo izvravanje naredbe POZOVI.

3.3. ASEMBLERSKI JEZIK KONCEPT


Opis asemblerskog jezika propisuje nain sastavljanja (sintaksu) asemblerskih naredbi i odreuje znaenje (semantiku) asemblerskih naredbi. Sintaksa se zadaje precizno i koncizno u obliku pravila izraenih pomou EBNF (Extended Backus-Naur Form) notacije. U ovoj notaciji, ime pravila se navodi sa leve strane strelice (->), a sa desne strane strelice se navode prethodno uvedena imena pravila i simboli koji odgovaraju elementima jezika. EBNF notacija koristi razmak za razdvajanje delova pravila, vertikalnu crtu (|) za oznaavanje alternativnih delova pravila, okrugle zagrade za grupisanje delova pravila, uglaste zagrade za oznaavanje delova pravila koji se mogu pojaviti nijednom ili jednom i vitiaste zagrade za oznaavanje delova pravila koji se mogu pojaviti nijednom, jednom ili vie puta. Znakovi, koje koristi EBNF notacija (strelica, razmak, vertikalna crta, okrugle, uglaste i vitiaste zagrade), mogu predstavljati simbole jezika, ako se navedu izmeu navodnika. Primer pravila u EBNF notaciji je:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


malo_slovo > a|b|c|||d||e|f|g|h|i|j|k|l|m|n|o|p|r|s||t|u|v|z|

36

Prethodno pravilo oznaava da se jedno od slova, navedenih sa desne strane strelice, koristi umesto imena malo_slovo. Analogno znaenje ima i pravilo cifra:
cifra > 0|1|2|3|4|5|6|7|8|9

Obrazovanje decimalnog broja opisuje pravilo:


decimalni_broj > cifra{cifra}

Podrazumeva se da decimalni broj sadri najvie do 4 cifre. Obrazovanje heksadecimalnog broja opisuju pravila:
heksa_cifra > cifra|A|B|C|D|E|F heksadecimalni_broj > 0x(heksa_cifra){heksa_cifra}

(heksadecimalni broj zapoinje znakovima 0x, iza kojih slede jedna ili vie cifara ili velikih slova A, B, C, D, E, F). Podrazumeva se da heksadecimalni broj sadri najvie do 6 znakova. Obrazovanje broja opisuje pravilo:
broj > decimalni_broj|heksadecimalni_broj

Obrazovanje labele opisuje pravilo:


labela > malo_slovo{malo_slovo|cifra|_}

Podrazumeva se da labela moe da sadri najvie do 30 znakova i da je obavezno jedinstvena u asemblerskom programu. Obrazovanje neposrednog operanda opisuje pravilo:
neposredni_operand > ($broj|$labela)

Kao neposredni operand slui vrednost navedenog broja ili adresa memorijske lokacije koju oznaava navedena labela. Obrazovanje direktnog operanda opisuje pravilo:
direktni_operand > labela

Kao direktni operand slui memorijska lokacija koju oznaava navedena labela. Ako je direktni operand ulazni, sadraj ove lokacije predstavlja ulaznu vrednost, a ako je direktni operand izlazni, ova lokacija se koristi kao izlazna lokacija. Obrazovanje registarskog operanda opisuju pravila:

37

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

registar > %(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15) registarski_operand > registar

Kao registarski operand slui registar sa navedenom oznakom. Ako je registarski operand ulazni, sadraj ovog registra predstavlja ulaznu vrednost, a ako je registarski operand izlazni, ovaj registar se koristi kao izlazna lokacija. Obrazovanje posrednog operanda opisuje pravilo:
posredni_operand > (registar)

Kao posredni operand slui memorijska lokacija iju adresu sadri navedeni registar. Ako je posredni operand ulazni, sadraj adresirane lokacije predstavlja ulaznu vrednost, a ako je posredni operand izlazni, adresirana lokacija se koristi kao izlazna lokacija. Obrazovanje indeksnog operanda opisuje pravilo:
indeksni_operand > (broj|labela)(registar)

Kao indeksni operand slui memorijska lokacija iju adresu odreuje zbir dva sastojka. Jedan sastojak je navedeni broj ili adresa memorijske lokacije koju oznaava navedena labela, a drugi sastojak je sadraj navedenog registra. Ako je indeksni operand ulazni, sadraj adresirane lokacije predstavlja ulaznu vrednost, a ako je indeksni operand izlazni, adresirana lokacija se koristi kao izlazna lokacija. Obrazovanje razmaka opisuje pravilo:
razmak > { }

(izmeu apostrofa se nalazi razmak). Obrazovanje nove linije opisuje pravilo:


nova_linija > poetak linije{ }

(izmeu prvog para apostrofa se nalazi upravljaki znak koji omoguuje pozicioniranje na poetak linije, a izmeu drugog para apostrofa se nalazi razmak). Obrazovanje osnovnih asemblerskih naredbi opisuje pravilo:
osnovna_naredba -> nova_linija [labela:] razmak ((SABERI|SABERI_P) razmak registarski_operand,registarski_operand |(ODUZMI|ODUZMI_P) razmak registarski_operand,registarski_operand |UPOREDI razmak registarski_operand,registarski_operand |(I|ILI) razmak registarski_operand,registarski_operand |(DODAJ_1|ODBIJ_1) razmak registarski_operand |(NE|LEVO|DESNO) razmak registarski_operand)

Obrazovanje asemblerskih naredbi prebacivanja opisuje pravilo:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


naredba_prebacivanja -> nova_linija [labela:] razmak (PREBACI_RR razmak registarski_operand,registarski_operand |PREBACI_NR razmak registarski_operand,neposredni_operand |PREBACI_DR razmak registarski_operand,direktni_operand |PREBACI_PR razmak registarski_operand,posredni_operand |PREBACI_IR razmak registarski_operand,indeksni_operand |PREBACI_RD razmak direktni_operand,registarski_operand |PREBACI_RP razmak posredni_operand,registarski_operand |PREBACI_RI razmak indeksni_operand,registarski_operand)

38

Obrazovanje upravljakih asemblerskih naredbi opisuje pravilo:


upravljaka_naredba -> nova_linija [labela:] razmak ((SKOI |SKOI_ZA_== |SKOI_ZA_!= |SKOI_ZA_< |SKOI_ZA_>= |SKOI_ZA_> |SKOI_ZA_<= |SKOI_ZA__< |SKOI_ZA__>= |SKOI_ZA__> |SKOI_ZA__<= |SKOI_ZA_N |SKOI_ZA_NE_N |SKOI_ZA_P |SKOI_ZA_NE_P |SKOI_ZA_M |SKOI_ZA_NE_M |SKOI_ZA_V |SKOI_ZA_NE_V |POZOVI) razmak labela) |NATRAG)

Upravljake asemblerske naredbe koriste adresu labele (koja je navedena na mestu operanda) kao adresu ciljne naredbe. Asemblerske naredbe u mainski oblik prevodi asembler. Podrazumeva se da on smeta mainske oblike naredbi u memorijske lokacije. Meutim, asembleru se mora izriito navesti da zauzme i eventualno inicijalizuje memorijske lokacije za promenljive. To omoguuju asemblerske direktive. Asemblerska direktiva ZAUZMI omoguuje zauzimanje vie memorijskih lokacija. Njen jedini operand odreuje broj memorijskih lokacija koje se zauzimaju. Asemblerska direktiva NAPUNI omoguuje zauzimanje jedne memorijske lokacije, iji sadraj odreuje jedini operand ove direktive. Obrazovanje asemblerskih direktiva opisuje pravilo:
direktiva -> nova_linija [labela:] razmak (ZAUZMI|NAPUNI) razmak broj

Vano je uoiti da su direktive upuene asembleru (prevodiocu), a ne procesoru.

39

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Znai, direktive nisu izvrne (one u toku asembliranja izazivaju zauzimanje memorijskih lokacija, u koje se smetaju podaci). Za razliku od njih, naredbe su upuene procesoru, pa su, prema tome, izvrne (njima odgovaraju memorijske lokacije koje sadre mainske oblike naredbi). Obrazovanje tela asemblerskog programa opisuje pravilo:
telo -> {direktiva |osnovna_naredba |naredba_prebacivanja |upravljaka_naredba}

Uputno je da, u telu asemblerskog programa, sve direktive prethode naredbama, radi spreavanja da se sadraj memorijske lokacije, predviene za smetanje podataka, upotrebi kao mainski oblik naredbe. Obrazovanje celog asemblerskog programa, ili njegovog samostalnog dela, opisuje pravilo:
program -> POETAK razmak labela telo nova_linija KRAJ

Iza rei POETAK i razamaka navodi se ulazna labela. Podrazumeva se da u telu asemblerskog programa ulazna labela neposredno prethodi ulaznoj asemblerskoj naredbi od koje zapoinje izvravanje asemblerskog programa. Izvravanje asemblerskih naredbi zatim tee sekvencijalno ka poslednjoj asemblerskoj naredbi iz njegovog tela, ako upravljake naredbe ne izmene redosled izvravanja naredbi.

3.4. PRIMERI ASEMBLERSKIH PROGRAMA


RAUNANJE NAJVEEG ZAJEDNIKOG DELIOCA Raunanje najveeg zajednikog delioca opisuje asemblerski program:
ulaz: ponovo: vee: manje: kraj: POETAK PREBACI_NR PREBACI_NR UPOREDI SKOI_ZA_== SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI SKOI KRAJ ulaz %0,$12 %1,$10 %0,%1 kraj manje %0,%1 ponovo %1,%0 ponovo kraj

Telo asemblerskog programa zapoinje opisom punjenja registara %0 i %1 poetnim vrednostima (PREBACI_NR). Zatim sledi opis poreenja (UPOREDI) vrednosti registara %0 i %1. Ako su pomenute vrednosti jednake, registri %0 i %1 sadre najvei zajedniki delilac, pa sledi odlazak (SKOI_ZA_==) u beskonanu petlju, koja

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

40

oznaava kraj programa. Ako je vrednost registra %0 manja od vrednosti registra %1 (SKOI_ZA_<), vrednost registra %1 se umanjuje za vrednost registra %0. U suprotnom, vrednost registra %0 se umanjuje za vrednost registra %1. U oba sluaja, nakon izmene vrednosti vee promenljive, sledi opet poreenje vrednosti ovih promenljivih. IZLAZAK VAN OPSEGA KOD NEOZNAENIH CELIH BROJEVA Otkrivanje izlaska van opsega, kod sabiranja neoznaenih celih brojeva u dvostrukoj preciznosti, opisuje asemblerski program:
a_donji: a_gornji: b_donji: b_gornji: greka: ulaz: POETAK NAPUNI NAPUNI NAPUNI NAPUNI NAPUNI PREBACI_DR PREBACI_DR PREBACI_DR PREBACI_DR SABERI SABERI_P SKOI_ZA_P SKOI NAPUNI_NR PREBACI_RD SKOI KRAJ ulaz 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0 %0,a_donji %1,a_gornji %2,b_donji %3,b_gornji %0,%2 %1,%3 van_opsega kraj %4,$1 greka,%4 kraj

van_opsega: kraj:

Za promenljive a i b, ije vrednosti se sabiraju, zauzete su i inicijalizovane po dve lokacije. Za promenljivu greka, u koju se smeta indikacija izlaska van opsega (0 nije bilo izlaska van opsega, 1 bilo je izlaska van opsega), zauzeta je i inicijalizovana na vrednost 0 jedna lokacija. Nakon prebacivanja delova sabiraka u registre (PREBACI_DR), sabiraju se (SABERI) manje znaajni (donji) delovi vrednosti promenljivih a i b. Zatim se sabiraju (SABERI_P) znaajniji (gornji) delovi vrednosti ovih promenljivih i prenos iz prethodnog sabiranja. Pojava prenosa u drugom sabiranju ukazuje na izlazak van opsega (SKOI_ZA_P), to predstavlja greku i oznaava se smetanjem vrednosti 1 u promenljivu greka. IZLAZAK VAN OPSEGA KOD OZNAENIH CELIH BROJEVA Otkrivanje izlaska van opsega, kod sabiranja oznaenih celih brojeva u dvostrukoj preciznosti, opisuje asemblerski program:

41

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


POETAK NAPUNI NAPUNI NAPUNI NAPUNI NAPUNI PREBACI_DR PREBACI_DR PREBACI_DR PREBACI_DR SABERI SABERI_P SKOI_ZA_V SKOI PREBACI_NR PREBACI_RD SKOI KRAJ ulaz 0xFFFF 0xFFFF 0xFFFF 0xFFFF 0 %0,a_donji %1,a_gornji %2,b_donji %3,b_gornji %0,%2 %1,%3 van_opsega kraj %4,$1 greka,%4 kraj

a_donji: a_gornji: b_donji: b_gornji: greka: ulaz:

van_opsega: kraj:

Jedina razlika ovog i prethodnog programa je u nainu otkrivanja izlaska van opsega, nakon sabiranja znaajnijih delova vrednosti promenljivih a i b. U sluaju sabiranja oznaenih celih brojeva, na izlazak van opsega ukazuje postavljenost logike promenljive V (SKOI_ZA_V), jer se podrazumeva komplement 2 predstava oznaenih brojeva. RUKOVANJE MAINSKOM NORMALIZOVANOM FORMOM Rukovanje mainskom normalizovanom formom binarne predstave realnih brojeva zahteva pristupanje pojedinim bitima lokacija. Ako se za mainsku normalizovanu formu koristi cela lokacija (16 bita), tada prvi bit s leva moe da sadri predznak broja, narednih 8 bita mogu da sadre podeeni eksponent (za podeavanje se koristi konstanta 100000002==28-1), a preostalih 7 bita mogu da sadre 7 manje znaajnih bita frakcije (najznaajniji bit frakcije je uvek 1 i ne prikazuje se). Sledi primer broja predstavljenog u upravo opisanoj mainskoj normalizovanoj formi: -1.510 == -1.1000000220 == 11000000010000002 Zauzimanje memorijske lokacije za realnu promenljivu i smetanje u nju prethodne vrednosti u mainskoj normalizovanoj formi, opisuje naredna asemblerska direktiva:
realan: NAPUNI 0xC040

Izmenu samo predznaka vrednosti prethodne realne promenljive, opisuju asemblerske naredbe:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


PREBACI_DR PREBACI_NR I %0,realan %1,$0x7FFF %0,%1

42

a vraanje predznaka na prethodnu vrednost, opisuje asemblerska naredba:


PREBACI_NR ILI %1,$0x8000 %0,%1

Izdvajanje eksponenta i njegovo pomeranje za 7 mesta u desno, radi njegove pripreme za aritmetiku eksponenata, opisuju asemblerske naredbe:
PREBACI_DR PREBACI_NR I PREBACI_NR DESNO ODBIJ_1 SKOI_ZA_NE_N %0,realan %1,$0x7F80 %0,%1 %2,$7 %0 %2 ponovo

ponovo:

RUKOVANJE LOGIKIM VREDNOSTIMA Dodelu (logike) vrednosti relacionog izraza dvema promenljivim, opisuje sekvenca programa, izraena programskim jezikom C:
int a,b; char c,d; ... c = (a!=b); d = c;

Prethodnoj sekvenci programa odgovara sekvenca asemblerskog programa:


a: b: c: d: ZAUZMI ZAUZMI ZAUZMI ZAUZMI ... PREBACI_DR PREBACI_DR PREBACI_NR UPOREDI SKOI_ZA_!= PREBACI_NR PREBACI_RD PREBACI_RD 1 1 1 1 %0,a %1,b %2,$1 %0,%1 dalje %2,$0 c,%2 d,%2

dalje:

(konstante 1 i 0 predstavljaju vrednosti logikih promenljivih c i d).

43

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

RAUNANJE VREDNOSTI CELOBROJNOG IZRAZA Dodeljivanje vrednosti celobrojnog izraza promenljivoj opisuje sekvenca programa, izraena programskim jezikom C (podrazumeva se da izraz sadri samo neoznaene cele vrednosti, za koje izlazak van opsega nije mogu):
unsigned a,b,c; ... c = (a-b)*2+(a+b)/2;

Prethodnoj sekvenci programa odgovara sekvenca asemblerskog programa:


a: b: c: ZAUZMI ZAUZMI ZAUZMI ... PREBACI_DR PREBACI_DR PREBACI_DR ODUZMI LEVO SABERI DESNO SABERI PREBACI_RD 1 1 1 %0,a %1,b %2,a %2,%1 %2 %0,%1 %0 %2,%0 c,%2

RUKOVANJE NIZOVIMA Brojanje dana sa srednjom dnevnom temperaturom iz posmatranog intervala temperatura, i to u odreenom periodu godine, opisuje sekvenca programa, izraena programskim jezikom C:
int t[365]; int prvi,poslednji,donja,gornja,i; int broj = 0; ... for (i=prvi;i<=poslednji;i++) if ((t[i]>=donja)&&(t[i]<=gornja)) broj++;

(tabela t sadri srednje dnevne temperature za 365 dana u godini, promenljive prvi i poslednji sadre redne brojeve dana na granicama zadanog perioda u godini, promenljive donja i gornja sadre temperaturne granice posmatranog intervala temperatura, promenljiva i slui kao indeks elemenata tabele t, a promenljiva broj sadri broj dana u odreenom periodu godine, u kojima je srednja dnevna temperatura iz posmatranog intervala). Prethodnoj sekvenci programa odgovara sekvenca asemblerskog programa:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


t: prvi: poslednji: donja: gornja: broj: ZAUZMI ZAUZMI ZAUZMI ZAUZMI ZAUZMI ZAUZMI ... PREBACI_NR PREBACI_DR PREBACI_DR PREBACI_DR PREBACI_DR UPOREDI SKOI_ZA_> UPOREDI SKOI_ZA__< UPOREDI SKOI_ZA__> DODAJ_1 DODAJ_1 SKOI PREBACI_RD 365 1 1 1 1 1 %0,$0 %1,prvi %2,poslednji %3,donja %4,gornja %1,%2 izlaz t(%1),%3 naredni t(%1),%4 naredni %0 %1 provera broj,%0

44

provera: ponovo:

naredni: izlaz:

(naredba sa labelom provera odgovara proveri kraja for iskaza, naredba sa labelom ponovo i etiri naredbe iza nje odgovaraju if iskazu, a naredba sa labelom naredni odgovara poveanju indeksa for iskaza). RUKOVANJE SLOGOVIMA Dodelu vrednosti slogu, koji sadri predstavu vremena, izraenu brojem sati, minuta i sekundi, opisuje sekvenca programa, izraena programskim jezikom C:
struct vreme {unsigned sat, minut, sekund;} a,b; ... b = a;

Prethodnoj sekvenci programa odgovara sekvenca asemblerskog programa:


a: b: ZAUZMI ZAUZMI ... PREBACI_NR PREBACI_IR PREBACI_RI DODAJ_1 PREBACI_IR PREBACI_RI DODAJ_1 PREBACI_IR PREBACI_RI 3 3 %0,$0 %1,a(%0) b(%0),%1 %0 %1,a(%0) b(%0),%1 %0 %1,a(%0) b(%0),%1

45

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Za slog promenljive a i b su zauzete po tri memorijske lokacije (za svako polje po jedna lokacija). Registar %0 sadri relativnu udaljenost polja ovih promenljivih od poetnih memorijskih lokacija ovih promenljivih.

3.5. POTPROGRAM
Potprogram omoguuje opisivanje izraunavanja vrednosti, odnosno opisivanje rukovanja strukturama podataka (vrednostima sloenih tipova). Opis potprograma prate njegovi pozivi. Razdvajanje opisa i poziva potprograma omoguuje korienje (poziv) potprograma samo na osnovu poznavanja njegove namene, a bez poznavanja njegovog opisa. To je naroito vano za postepen razvoj programa, jer znai da se svaki potprogram moe koristiti (pozivati) i pre dovrenja njegovog opisa, pod uslovom da je njegova namena precizirana. Optost opisu potprograma daje upotreba parametara, koja omoguuje da se potprogram odnosi na sve vrednosti iz skupa vrednosti, odreenog tipom parametara. Svako izvravanje potprograma se odnosi na konkretne vrednosti ovih parametara, koje se nazivaju argumenti. Njih odreuje poziv potprograma. Do izvravanja potprograma dolazi nakon njegovog poziva. U pozivu potprograma se odredi povratna adresa, od koje se nastavlja izvravanje programa, nakon izvravanja potprograma. Izvravanje potprograma zapoinje u ulaznoj taki opisa potprograma, a zavrava u izlaznoj taki ovog opisa. U ulaznoj taki potprograma se zauzimaju lokacije za lokalne promenljive potprograma, a u izlaznoj taki potprograma se ove lokacije oslobaaju. Lokalne promenljive potprograma se nazivaju i dinamike, jer postoje samo u toku izvravanja potprograma, za razliku od statikih ili globalnih promenljivih koje postoje za sve vreme izvravanja programa i koje su definisane van potprograma. Podruje vaenja (scope) lokalnih promenljivih je od mesta njihove definicije do kraja potprograma, a podruje vaenja globalnih promenljivih je od mesta njihove definicije do kraja programa. Potprogrami se dele na funkcije i procedure. Funkcije omoguuju opisivanje izraunavanja vrednosti, odnosno preuzimanje vrednosti promenljive. One imaju jedan ili vie ulaznih parametara (sa statusom lokalnih promenljivih) i jednu povratnu vrednost. Povratna vrednost funkcije se koristi u izrazu, koji sadri poziv funkcije. Procedure omoguuju opisivanje izmena vrednosti promenljivih. One mogu da imaju vie ulaznih parametara, ali i vie ulazno-izlaznih parametara. Raunanje najveeg zajednikog delioca moe biti opisano u obliku funkcije. U nastavku je naveden ovakav opis funkcije, izraen programskim jezikom C:
unsigned nzd(unsigned a, unsigned b) {while (a!=b) if (a>b) a = a-b; else b = b-a; return(a);};

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

46

Ulazni parametri a i b, opisa ove funkcije, odreuju vrednosti za koje se rauna najvei zajedniki delilac. Najvei zajedniki delilac se vraa kao povratna vrednost funkcije nzd. Ako su x, y i z celobrojne promenljive, tada poziv funkcije nzd:
z = nzd(12,10);

dodeljuje promenljivoj z najvei zajedniki delilac celih brojeva 12 i 10, a poziv iste funkcije:
z = nzd(x,y);

dodeljuje promenljivoj z najvei zajedniki delilac vrednosti promenljivih x i y. Raunanje najveeg zajednikog delioca moe biti opisano i u obliku procedure. U nastavku je naveden ovakav opis procedure, izraen programskim jezikom C:
void nzd(unsigned a, unsigned b, unsigned *c) {while (a!=b) if (a>b) a = a-b; else b = b-a; *c = a;};

Ulazni parametri a i b, opisa ove procedure, odreuju vrednosti za koje se rauna najvei zajedniki delilac. Najvei zajedniki delilac se dodeljuje ulazno-izlaznom parametru c. Ako su x, y i z celobrojne promenljive, tada poziv procedure nzd:
nzd(12,10,&z);

dodeljuje promenljivoj z najvei zajedniki delilac celih brojeva 12 i 10, a poziv iste procedure:
nzd(x,y,&z);

dodeljuje promenljivoj z najvei zajedniki delilac vrednosti promenljivih x i y. ASEMBLERSKI OBLIK POTPROGRAMA Potprogrami nisu iskljuivo vezani za programske jezike visokog nivoa. Opisi i pozivi potprograma se mogu javiti i u asemblerskom programu, ali su detalji opisivanja i poziva potprograma preputeni programeru. On se mora pobrinuti za prenos argumenata, za odlazak na izvravanje potprograma i za povratak iz potprograma, nakon njegovog izvravanja. Asemblerski jezik KONCEPT, olakava

47

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

zadatak programera, jer sadri upravljaku naredbu POZOVI, koja omoguuje odlazak na izvravanje potprograma, ali i smetanje povratne adrese u registar %15. Zahvaljujui tome, povratak iz potprograma omoguuje upravljaka naredba NATRAG. Registri procesora KONCEPT (uz izuzetak registra %15) mogu biti iskorieni za prenos argumenata, za ta je neophodna usaglaenost opisa i poziva potprograma. Uz pretpostavku da se registar %1 koristi za smetanje vrednosti prvog ulaznog parametra, registar %2 za smetanje vrednosti drugog ulaznog parametra, a registar %0 za smetanje povratne vrednosti funkcije, asemblerski ekvivalent opisa funkcije nzd izgleda:
nzd: vee: manje: kraj: UPOREDI SKOI_ZA_= SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI PREBACI_RR NATRAG %1,%2 kraj manje %1,%2 nzd %2,%1 nzd %0,%1

Ako su za celobrojne promenljive x, lokacije:


x: y: z: NAPUNI NAPUNI ZAUZMI 9 3 1

zauzete i inicijalizovane memorijske

tada asemblerske naredbe:


PREBACI_NR PREBACI_NR POZOVI PREBACI_RD %1,$12 %2,$10 nzd z,%0

opisuju poziv asemblerskog ekvivalenta funkcije nzd, u kome se izrauna najvei zajedniki delilac celih brojeva 10 i 12, a povratna vrednost ove funkcije dodeli promenljivoj z. U prethodnom primeru, u registre %1 i %2 se smeste argumenti pre odlaska na izvravanje potprograma, a nakon povratka iz potprograma sadraj registra %0 (povratna vrednost) se smesti u promenljivu z. Slino, asemblerske naredbe:
PREBACI_DR PREBACI_DR POZOVI PREBACI_RD %1,x %2,y nzd z,%0

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

48

opisuju poziv asemblerskog ekvivalenta funkcije nzd, u kome se rauna najvei zajedniki delilac vrednosti promenljivih x i y, a povratna vrednost ove funkcije dodeli promenljivoj z. Uz pretpostavku da se registar %1 koristi za smetanje vrednosti prvog ulaznog parametra, registar %2 za smetanje vrednosti drugog ulaznog parametra, a registar %3 za smetanje adrese treeg ulazno-izlaznog parametra, asemblerski ekvivalent opisa procedure nzd izgleda:
nzd: vee: manje: kraj: UPOREDI SKOI_ZA_= SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI PREBACI_RP NATRAG %1,%2 kraj manje %1,%2 nzd %2,%1 nzd (%3),%1

Ako su za celobrojne promenljive x, lokacije:


x: y: z: NAPUNI NAPUNI ZAUZMI 9 3 1

zauzete i inicijalizovane memorijske

tada asemblerske naredbe:


PREBACI_NR PREBACI_NR PREBACI_NR POZOVI %1,$12 %2,$10 %3,$z nzd

opisuju poziv asemblerskog ekvivalenta procedure nzd, u kome se izrauna najvei zajedniki delilac celih brojeva 10 i 12 i dodeli ulazno-izlaznoj promenljivoj z. U prethodnom primeru, pre odlaska na izvravanje potprograma, u registre %1 i %2 se smeste vrednosti iji najvei zajedniki delilac se rauna, a u registar %3 se smesti adresa memorijske lokacije, namenjene za prihvatanje izraunatog najveeg zajednikog delioca. Slino prethodnom, opis poziva asemblerskog ekvivalenta procedure nzd, u kome se izrauna najvei zajedniki delilac vrednosti promenljivih x i y i dodeli ulazno-izlaznoj promenljivoj z, sadre asemblerske naredbe:
PREBACI_DR PREBACI_DR PREBACI_NR POZOVI %1,x %2,y %3,$z nzd

49

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

3.6. MAKRO
Korienje potprograma uvek poveava broj izvravanih naredbi, ime se produava vreme izvravanja programa. Pored toga, korienje potprograma nekad izaziva i poveanje duine programa, to znai da treba vie memorijskih lokacija za smetanje mainskog oblika programa. Prethodno se moe pokazati na primeru opisa i poziva asemblerskog ekvivalenta procedure nzd:
x: y: z: nzd: vee: manje: kraj: NAPUNI NAPUNI ZAUZMI ... UPOREDI SKOI_ZA_== SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI PREBACI_RP NATRAG ... PREBACI_DR PREBACI_DR PREBACI_NR POZOVI 9 3 1 %1,%2 kraj manje %1,%2 nzd %2,%1 nzd (%3),%1 %1,x %2,y %3,$z nzd

Ako bi poziv potprograma bio zamenjen opisom potprograma, tada bi prethodnoj sekvenci asemblerskog programa odgovarala sledea sekvenca:
x: y: z: nzd: nzd1: vee: manje: kraj: NAPUNI NAPUNI ZAUZMI ... PREBACI_DR PREBACI_DR PREBACI_NR UPOREDI SKOI_ZA_== SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI PREBACI_RP 9 3 1 %1,x %2,y %3,$z %1,%2 kraj manje %1,%2 nzd1 %2,%1 nzd1 (%3),%1

Iz prethodnih primera sledi da se, po svakom pozivu, izvre 2 naredbe manje u pristupu u kome opis potprograma zamenjuje njegov poziv, nego u sluaju u kome poziv dovodi do izvravanja opisa potprograma. Zavisnost broja naredbi (odnosno duine) programa od broja poziva potprograma za ova dva pristupa je prikazana, za prethodni primer, tabelarno (Slika 3.6.1).

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

50

broj poziva 1 2 3

broj naredbi kada istovremeno postoje i opis i poziv potprograma 13 17 21

broj naredbi kada se poziv potprograma zamenjuje opisom potprograma 11 22 33

Slika 3.6.1 Zavisnost broja naredbi od broja poziva asemblerskog ekvivalenta potprograma nzd Znai, sa stanovita duine programa, u posmatranim sluajevima (Slika 3.6.1) bolje je zamenjivati poziv potprograma opisom potprograma, ako se potprogram koristi samo jedan put. Dobre osobine pristupa u kome pozivi dovode do izvravanja opisa potprograma se mogu kombinovati sa dobrim osobinama pristupa u kome opisi potprograma zamenjuju njegove pozive. To se postie, ako svaki poziv potprograma automatski bude zamenjen njegovim opisom (koji je, eventualno, modifikovan tako da su parametri iz opisa zamenjeni odgovrajuim argumentima iz poziva). Ovakvi pozivi potprograma se nazivaju veliki, odnosno makro (macro) pozivi, jer ih zamenjuju naredbe iz opisa potprograma koji se nazivaju makro definicije. Upotreba makroa (makro definicija i makro poziva) umesto potprograma uvek dovodi do skraenja vremena izvravanja programa, a dovodi i do smanjenja duine programa, ako je u programu prisutan samo jedan poziv makroa. Zamenu ili supstituciju makro poziva, eventualno, modifikovanim naredbama iz makro definicije obavlja poseban program koji se naziva makro pretprocesor (macro preprocessor). On procesira (obrauje) programski tekst pre asemblera i tako, pravei tekstualne izmene, priprema tekst asemblerskog programa za asembliranje (Slika 3.6.2).

51

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Asemblerski program sa makro definicijama i makro pozivima

MAKRO PRETPROCESOR

Asemblerski program bez makro definicija i makro poziva

Slika 3.6.2 Uloga makro pretprocesora U toku izmena programskog teksta, makro pozive zamenjuju naredbe iz makro definicija. Tome eventualno prethodi modifikacija ovih naredbi. U toku nje parametre iz makro definicija zamenjuju argumenti iz makro poziva. Zadatak makro pretprocesora se znatno pojednostavljuje, ako u tekstu asemblerskog programa svaka makro definicija prethodi svojim makro pozivima. Makro definicije i makro pozivi su namenjeni makro pretprocesoru (kao to su direktive namenjene asembleru), pa zato makro pozivi nisu izvrni (kao ni direktive). Zbog toga, makro definicije mogu sadrati i direktive, koje zamenjuju odgovarajue makro pozive. OPIS MAKRO DEFINICIJA I MAKRO POZIVA Za opis obrazovanja makro definicija i makro poziva zgodna je EBNF notacija. Tako, pravilo:
veliko_slovo > A|B|C|||D||E|F|G|H|I|J|K|L|M|N|O|P|R|S||T|U|V|Z|

zadaje repertoar znakova, potreban za obrazovanje makro imena. Obrazovanje makro imena opisuje pravilo:
ime > veliko_slovo{veliko_slovo|cifra|_}

Podrazumeva se da makro ime sadri najvie do 30 znakova i da je obavezno jedinstveno u asemblerskom programu. Obrazovanje makro parametara opisuje pravilo:
parametar > labela|ime

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

52

Parametar je obavezno jedinstven u makro definiciji. Obrazovanje makro argumenata opisuje pravilo:
argument > (broj|parametar)[(+|-|*|/)(broj|parametar)] |registar

Neophodno je da argument bude usaglaen sa ulogom parametra koga zamenjuje. Kada se kao argument pojavi celobrojni izraz, ija oba operanda su brojevi, tada makro pretprocesor izrauna izraz i dobijenu vrednost koristi kao argument. Obrazovanje makro definicije opisuje pravilo:
makro_definicija -> nova_linija ime razmak MAKRO razmak {parametar[,]} telo nova_linija KRAJ

Iz prethodnog pravila sledi da se telo makro definicije ne razlikuje od tela asemblerskog programa. Obrazovanje makro poziva opisuje pravilo:
makro_poziv -> nova_linija [labela:] razmak ime razmak {argument[,]}

Obrazovanje proirenog tela asemblerskog programa, odnosno proirenog tela makro definicije, opisuje pravilo:
telo -> {direktiva |osnovna_naredba |naredba_prebacivanja |upravljaka_naredba |makro_definicija |makro_poziv}

U makro pozivu se koristi ime prethodno definisanog makroa, sa ijim parametrima se, po broju i mestu, slau argumenti poziva. Makro pozive zamenjuju tela makroa, u kojima su parametri zamenjeni argumentima. Parametri se mogu pojaviti svugde u telu makro definicije (na primer, na mestu: labele, imena naredbe, imena direktive, operanda, parametra ili argumenta).

53

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

PRIMERI MAKRO DEFINICIJA I MAKRO POZIVA Makro definicija:


NZD MAKRO PREBACI_DR PREBACI_DR PREBACI_NR UPOREDI SKOI_ZA_== SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI PREBACI_RP KRAJ a,b,c %1,a %2,b %3,$c %1,%2 kraj manje %1,%2 nzd %2,%1 nzd (%3),%1

nzd: vee: manje: kraj:

opisuje raunanje najveeg zajednikog delioca. Makro poziv:


NZD x,y,z

zamenjuju naredbe:
PREBACI_DR PREBACI_DR PREBACI_NR UPOREDI SKOI_ZA_== SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI PREBACI_RP %1,x %2,y %3,$z %1,%2 kraj manje %1,%2 nzd %2,%1 nzd (%3),%1

nzd: vee: manje: kraj:

Viestruki pozivi makroa NZD u jednom asemblerskom programu izazivaju viestruku pojavu istih labela (navedenih u telu ovog makroa). Ovaj problem se reava ili korienjem parametara na mestu spornih labela, ili preputanjem makro pretprocesoru da, u ovakvim sluajevima, sam generie jedinstvene labele. MAKRO DEFINICIJA SA MAKRO DEFINICIJOM Telo makro definicije moe sadrati drugu makro definiciju. Pri tome poziv unutranjeg makroa obavezno sledi iza poziva vanjskog makroa, jer je tek tada unutranja makro definicija potpuno oblikovana (njen konaan izgled, u optem sluaju, zavisi od argumenata poziva vanjskog makroa). To znai, na primer, da je mogue napisati optu makro definiciju koja opisuje aritmetiku u dvostrukoj preciznosti. Na osnovu ovakve definicije mogu se stvoriti makro definicije koje opisuju sabiranje ili oduzimanje u dvostrukoj preciznosti. Prethodno ilustruje makro definicija:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


DVOSTRUKO NAZIV MAKRO MAKRO OPERACIJA1 OPERACIJA2 KRAJ KRAJ NAZIV,OPERACIJA1,OPERACIJA2 %0,%2 %1,%3

54

(prethodna makro definicija podrazumeva da se u registrima %0 i %1 nalaze manje znaajni i znaajniji deo prvog broja u dvostrukoj preciznosti, a da se u registrima %2 i %3 nalaze manje znaajni i znaajniji deo drugog broja u dvostrukoj preciznosti, kao i da se zanemaruje izlazak van opsega). Makro poziv:
DVOSTRUKO SABERI_2,SABERI,SABERI_P

zamenjuje makro definicija:


SABERI_2 MAKRO SABERI SABERI_P KRAJ %0,%2 %1,%3

koja opisuje sabiranje u dvostrukoj preciznosti, a makro poziv:


DVOSTRUKO ODUZMI_2,ODUZMI,ODUZMI_P

zamenjuje makro definicija:


ODUZMI_2 MAKRO ODUZMI ODUZMI_P KRAJ %0,%2 %1,%3

koja opisuje oduzimanje u dvostrukoj preciznosti. USLOVNO ASEMBLIRANJE Makro pretprocesor omoguuje oblikovanje, ne samo makro definicija, nego i drugih delova asemblerskog programa, ako podrava uslovno asembliranje. Za uslovno asembliranje je potrebna uslovna direktiva koja odreuje pod kojim uslovom makro pretprocesor proputa na asembliranje deo asemblerskog programa, sadran u telu uslovne direktive. Ako navedeni uslov nije ispunjen, tada se deo asemblerskog programa iz tela uslovne direktive ne ukljuuje u asemblerski program. Obrazovanje uslova uslovne direktive opisuje pravilo:
uslov > (broj|parametar)(==|!=|>|<|>=|<=)(broj|parametar)

55

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

(uslov uslovne direktive ima oblik relacije, od ijeg vaenja zavisi tanost uslova). Obrazovanje uslovne direktive opisuje pravilo:
uslovna_direktiva -> nova_linija USLOVNO razmak uslov telo nova_linija KRAJ

Telo uslovne direktive se obrazuje na isti nain kao i telo asemblerskog programa ili makro definicije. Uslovna direktiva je upuena makro pretprocesoru (znai, nije izvrna). Obrazovanje proirenog tela asemblerskog programa, makro definicije i uslovne direktive opisuje pravilo:
telo -> {direktiva |osnovna_naredba |naredba_prebacivanja |upravljaka_naredba |makro_definicija |makro_poziv |uslovna_direktiva }

Pomou uslovne direktive je mogue, na primer, opisati obrazovanje tabele, iji elementi sadre vrednosti prvih n stepena broja 2. Obrazovanje ovakve tabele opisuje naredna makro definicija koja sadri rekurzivne makro pozive. Kraj rekurzije nastupa kada prestane vaiti uslov uslovne direktive.
TABELA MAKRO USLOVNO TABELA NAPUNI KRAJ KRAJ stepen stepen > 0 stepen/2 stepen

Makro poziv:
stepeni: TABELA 8

zamenjuju direktive:
stepeni: NAPUNI NAPUNI NAPUNI NAPUNI 1 2 4 8

3.7. STEK
U naredbi POZOVI je predvieno uvanje samo jedne povratne adrese (jer samo toliko prostora ima u registru %15). Zato ova naredba direktno ne podrava poziv potprograma iz potprograma, ili rekurzivne pozive potprograma, jer se tada

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

56

mora sauvati vie (unapred nepoznat broj) povratnih adresa. Povratne adrese se koriste u obrnutom redosledu od redosleda svog nastanka, jer nastaju u pozivu potprograma, a koriste se pri povratku iz potprograma. Znai, kao prva se koristi povratna adresa koja je poslednja nastala (poto se prvi zavrava poslednje pozvani potprogram), a kao poslednja povratna adresa koja je prva nastala. Opisani redosled nastajanja i korienja povratnih adresa dozvoljava da se za njihovo privremeno uvanje koristi niz memorijskih lokacija, u koji se povratne adrese smetaju u jednom smeru, a iz koga se povratne adrese preuzimaju u drugom smeru (podrazumeva se da su adrese memorijskih lokacija iz ovog niza uzastopne i rastue). Ako se povratne adrese smetaju u pomenuti niz od njegovog kraja ka njegovom poetku, a preuzimaju iz pomenutog niza u suprotnom smeru, poev od lokacije, do koje je niz bio popunjen, tada je za rukovanje nizom jedino vano znati adresu lokacije, do koje je niz popunjen. Od ove lokacije se nastavlja punjenje niza ka njegovom poetku, odnosno, od nje se niz prazni ka njegovom kraju. Drugim reima, sve napunjene lokacije niza su koncentrisane na njegovom kraju, a sve slobodne lokacije na njegovom poetku. Ovako organizovan niz memorijskih lokacija se naziva stek (stack). Numerika adresa lokacije, do koje je stek popunjen, se obino uva u registru, koji se naziva pokaziva steka (stack pointer). Slika 3.7.1 sadri prikaz izgleda steka. vie adrese popunjeni deo steka prazan deo steka nie adrese ... Slika 3.7.1 Izgled steka Rukovanje stekom obuhvata: zauzimanje memorijskih lokacija za stek, pripremu steka za korienje (odnosno, inicijalizaciju pokazivaa steka), smetanje sadraja u stek i preuzimanje sadraja iz steka. Opti opis rukovanja stekom sadri naredna makro definicija (za nju se podrazumeva da je registar %1 radni, odnosno da se njegov sadraj moe slobodno menjati.): ...

vrh steka

<-

pokaziva steka

57

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


MAKRO ZAUZMI MAKRO PREBACI_NR PREBACI_NR SABERI KRAJ MAKRO ODBIJ_1 PREBACI_RP KRAJ MAKRO PREBACI_PR DODAJ_1 KRAJ KRAJ veliina,pokaziva_steka veliina pokaziva_steka,$stek %1,$veliina pokaziva_steka,%1 registar pokaziva_steka (pokaziva_steka),registar registar registar,(pokaziva_steka) pokaziva_steka

STEK stek: PRIPREMI_STEK

NA_STEK

SA_STEKA

Jedina dva parametra prethodne makro definicije slue za odreivanje: veliine steka i oznake registra pokazivaa steka. Oni omoguuju potpuno oblikovanje makro definicija, sadranih u makro definiciji STEK. Makro definicija STEK je napravljena uz pretpostavku da je broj lokacija steka uvek vei od broja sadraja koji se smetaju na stek. Takoe, podrazumeva se da se stek ispravno koristi, odnosno da se sa steka preuzimaju samo u njega smeteni sadraji. Makro poziv:
STEK 0x100,%12

zamenjuju sledea direktiva i makro definicije:


stek: PRIPREMI_STEK ZAUZMI MAKRO PREBACI_NR PREBACI_NR SABERI KRAJ MAKRO ODBIJ_1 PREBACI_RP KRAJ MAKRO PREBACI_PR DODAJ_1 KRAJ 0x100 %12,$stek %1,$0x100 %12,%1 registar %12 (%12),registar registar registar,(%12) %12

NA_STEK

SA_STEKA

koje dovode do zauzimanja 256 memorijskih lokacija (10016) za stek, do odreivanja registra %12 kao pokazivaa steka i do oblikovanja makro definicija PRIPREMI_STEK, NA_STEK i SA_STEKA (korienje prve od njih obavezno prethodi korienju poslednje dve).

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

58

FREJM Stek se koristi, ne samo za uvanje povratnih adresa, nego i za prenos argumenata u potprogram. Skup lokacija na steku, koje sadre povratnu adresu i argumente se naziva frejm (stack frame). Frejm nastaje prilikom poziva potprograma, a nestaje po povratku iz potprograma. Lokacijama frejma se moe pristupati posredstvom pokazivaa steka, ali tada probleme stvaraju izmene pokazivaa steka (koje stalno menjaju udaljenost frejma od vrha steka), kao i istovremeno postojanje vie frejmova na steku. Zato je bolje koristiti poseban registar za pristup lokacijama frejma. Takav registar se naziva pokaziva frejma (base pointer). On pokazuje na baznu lokaciju ili bazu frejma. Da bi se za svaki od istovremeno postojeih frejmova mogao odrediti njegov pokaziva, zgodno je uvezati frejmove u listu. To se postie ako baza najmlaeg frejma sadri pokaziva prethodnog frejma i tako dalje. Podrazumeva se da aktivni pokaziva frejma pokazuje na bazu najmlaeg frejma. Pored povratne adrese, argumenata i pokazivaa prethodnog frejma, frejm moe da sadri i lokalne (dinamike) promenljive. Slika 3.7.2 sadri prikaz mogueg izgleda ovakvog frejma. vie adrese ... argument n ... argument 2 argument 1 povratna adresa pokaziva prethodnog frejma lokalna promenljiva 1 ... lokalna promenljiva m ... Slika 3.7.2 Izgled frejma Za pristup lokacijama frejma (Slika 3.7.2) zgodno je indeksno adresiranje, koje koristi pokaziva frejma i relativnu udaljnost lokacije frejma od njegove baze. Ako registar %11 sadri pokaziva frejma, tada poreenje argumenta 1 i argumenta 2 (Slika 3.7.2) opisuju naredbe:
PREBACI_IR PREBACI_IR UPOREDI %0,2(%11) %1,3(%11) %0,%1 %0

frejm

<-

pokaziva frejma pokaziva steka

<-

nie adrese

U prethodnom, a i u sledeem primeru se podrazumeva da su registri odnosno da se njihovi sadraji mogu slobodno menjati.

%1

radni,

59

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Stvaranje frejma je vezano za poziv potprograma. Ono se moe objasniti na primeru za poziv procedure nzd, (izraene programskim jezikom C):
nzd(x,y,&z);

Stvaranje frejma za prethodni poziv opisuje asemblerska sekvenca:


x: y: z: ZAUZMI ZAUZMI ZAUZMI ... PREBACI_NR NA_STEK PREBACI_DR NA_STEK PREBACI_DR NA_STEK NA_STEK POZOVI SA_STEKA PREBACI_NR SABERI 1 1 1 %0,$z %0 %0,y %0 %0,x %0 %15 nzd %15 %0,$3 %12,%0

Podrazumeva se da registar %12 sadri pokaziva steka, da registar %11 sadri pokaziva frejma i da pozvani asemblerski ekvivalent procedure nzd izgleda:
nzd: NA_STEK PREBACI_RR PREBACI_IR PREBACI_IR UPOREDI SKOI_ZA_== SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI PREBACI_IR PREBACI_RP SA_STEKA NATRAG %11 %11,%12 %0,2(%11) %1,3(%11) %0,%1 kraj manje %0,%1 ponovo %1,%0 ponovo %1,4(%11) (%1),%0 %11

ponovo: vee: manje: kraj:

Slika 3.7.3 sadri prikaz stanja na steku, neposredno pre izvravanja naredbe UPOREDI.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

60

vie adrese

... adresa z vrednost y

frejm

vrednost x %15 %11 <-%11 <-%12

nie adrese

...

Slika 3.7.3 Primer frejma Gornje (prve) 4 lokacije frejma (Slika 3.7.3) nastanu izvravanjem naredbi koje prethode naredbi POZOVI iz poziva potprograma nzd, a preostala lokacija nastane izvravanjem prve naredbe iz ovoga potprograma. Izvravanje pretposlednje naredbe ovoga potprograma poniti zadnju lokaciju frejma, a izvravanja poslednje tri naredbe iz poziva ovoga potprograma ponite prve 4 lokacije frejma. Korienje steka moe da uzrokuje dinamike greke u izvravanju programa (na primer, ako se ispostavi da, za neko izvravanje programa, broj lokacija steka nije dovoljan za smetanje svih sadraja). U arhitekturi naredbi procesora KONCEPT nisu predviene posebne naredbe, a ni posebna adresiranja za rukovanje stekom, da bi ovaj procesor bio to jednostavniji. Kada bi procesor KONCEPT podravao stek, tada bi u njegovom repertoaru naredbi trebalo da postoje naredbe koje su ekvivalentne makroima NA_STEK i SA_STEKA. U tom sluaju bi naredbe POZOVI i NATRAG trebalo da koriste stek umesto registra %15.

3.8. PITANJA
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Koji programski jezici niskog i visokog nivoa postoje? U emu se razlikuju asemblerski i mainski jezici? Kada je opravdano korienje asemblerskog i mainskog jezika? Koliki adresni prostor omoguuju 2 bita? Koje naredbe omoguuju aritmetiku u viestrukoj preciznosti? Koje naredbe u toku svog izvravanja ne manjaju uslovne bite? Koje aritmetike naredbe postoje? Koje naredbe za rukovanje bitima postoje? Koje upravljake naredbe postoje? Koje kombinacije operanada koriste naredbe prebacivanja? Koje naredbe omoguuju otkrivanje izlaska van opsega? Koje naredbe imaju dva operanda? Koje naredbe imaju jedan operand? Koje naredbe su bez operanada?

61

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.

Koje asemblerske direktive postoje? ta karakterie potprogram? ta karakterie makro? ta karakterie funkciju? ta karakterie proceduru? Koje asemblerske naredbe su uvedne radi asemblerskih potprograma? ta je vezano za poziv asemblerskog potprograma? ta je vezano za makro poziv? Kako upotreba potprograma utie na duinu programa i vreme njegovog izvravanja? Kako upotreba makroa utie na duinu programa i vreme njegovog izvravanja? Ko obavlja zamenu makro poziva modifikovanim naredbama iz makro definicija? Gde su definisane i kada postoje globalne promenljive? Gde su definisane i kada postoje lokalne promenljive? ta se smeta na stek? Kako se rukuje stekom? ta sadri frejm?

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

62

4. MEMORIJA I PROCESOR RAUNARA KONCEPT


4.1. ORGANIZACIJA MEMORIJE RAUNARA KONCEPT
Memorijska lokacija ili re obuhvata 16 bita ili 2 bajta od po 8 bita i odraava pozicionu predstavu binarnog broja. Znai, krajnje desni bit memorijske lokacije sadri najmanje znaajnu cifru, a njen krajnje levi bit sadri najznaajniju cifru (Slika 4.1.1).

...
15 1 0

Slika 4.1.1 Raspored bita u memorijskoj lokaciji Memorijskim lokacijama se pristupa: ili radi itanja (preuzimanja) sadraja, ili radi pisanja (izmene) sadraja. Istovremeno se pristupa svim bitima memorijskih lokacija. Svi biti se paralelno prenose iz lokacije, odnosno u lokaciju (Slika 4.1.2).

ulazne linije

...
izlazne linije

Slika 4.1.2 Principijelni izgled memorijske lokacije Kada se istovremeno zatvore prekidai na ulaznim linijama, tada nivo signala u svakoj od ulaznih linija (0 ili 1) odreuje novi sadraj bita memorijske lokacije u koji linija ulazi. Slino, kada se istovremeno zatvore prekidai na izlaznim linijama, tada sadraj bita memorijske lokacije (0 ili 1) odreuje nivo signala u izlaznoj liniji koja izlazi iz tog bita. Ulazni prekidai omoguuju pisanje sadraja memorijske lokacije, a izlazni prekidai omoguuju itanje sadraja memorijske lokacije. Zbog naina izvedbe memorijskih lokacija, njihov sadraj nije definisan u toku pisanja. Zato su pisanje i itanje sadraja memorijske lokacije meusobno iskljuivi, to znai da se ulazni i izlazni prekidai iste memorijske lokacije istovremeno ne zatvaraju. Svi ulazni prekidai jedne memorijske lokacije imaju isto upravljanje i iste argumente (jer su svi istovremeno otvoreni ili zatvoreni). Isto vai i za sve izlazne

63

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

prekidae pomenute memorijske lokacije. Zato se svi ulazni prekidai jedne memorijske lokacije predstavljaju samo jednim prekidaem, a svi izlazni prekidai pomenute memorijske lokacije drugim prekidaem (Slika 4.1.3).

16

16

Slika 4.1.3 Pojednostavljeni principijelni izgled memorijske lokacije Pojednostavljeni principijelni prikaz memorije sadri samo niz memorijskih lokacija od kojih se memorija sastoji. Memorijske lokacije se meusobno razlikuju po adresama, jer svaka memorijska lokacija ima jedinstvenu adresu. To je iskorieno u pojednostavljenom principijelnom prikazu memorije i svaka od prikazanih memorijskih lokacija je oznaena svojom adresom. Adrese su navedene u heksadecimalnom obliku ispred ulaznih linija prikazane memorijske lokacije (Slika 4.1.4).
0000 0001

16 16

16

...

16

FFFF

16

16

Slika 4.1.4 Pojednostavljeni principijelni izgled memorije DEKODIRANJE ADRESA Jednoznano upravljanje ulaznim i izlaznim prekidaima neke memorijske lokacije se moe ostvariti, ako se osloni na njenu adresu (koja je jednoznana) i na vrstu pristupanja ovoj memorijskoj lokaciji. Radi toga se pojedini biti Ai (i = 0, ... , 15) adrese memorijske lokacije koriste kao prekidaki argumenti. Iz istog razloga kao prekidaki argumenti se koriste i posebne logike promenljive (itanje) i P (pisanje), koje odreuju vrstu pristupanja memorijskoj lokaciji. Pri tome se podrazumeva da logika promenljiva ima vrednost 1 samo za vreme itanja, a da logika promenljiva P ima vrednost 1 samo za vreme pisanja i da u svakom momentu najvie jedna od ove dve logike promenljive ima vrednost 1. Uz prethodne pretpostavke, upravljanje ulaznim prekidaima memorijske lokacije sa adresom 000016 opisuje funkcija:
P&~A15&~A14&~A13&~A12&~A11&~A10&~A9&~A8&~A7&~A6&~A5&~A4&~A3&~A2&~A1&~A0

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

64

a upravljanje izlaznim prekidaima memorijske lokacije sa adresom 000016 opisuje funkcija:


&~A15&~A14&~A13&~A12&~A11&~A10&~A9&~A8&~A7&~A6&~A5&~A4&~A3&~A2&~A1&~A0

Slino, upravljanje ulaznim prekidaima memorijske lokacije sa adresom 000116 opisuje funkcija:
P&~A15&~A14&~A13&~A12&~A11&~A10&~A9&~A8&~A7&~A6&~A5&~A4&~A3&~A2&~A1&A0

a upravljanje izlaznim prekidaima memorijske lokacije sa adresom 000116 opisuje funkcija:


&~A15&~A14&~A13&~A12&~A11&~A10&~A9&~A8&~A7&~A6&~A5&~A4&~A3&~A2&~A1&A0

Na isti nain, upravljanje ulaznim prekidaima memorijske lokacije sa adresom FFFF16 opisuje funkcija:
P&A15&A14&A13&A12&A11&A10&A9&A8&A7&A6&A5&A4&A3&A2&A1&A0

a upravljanje izlaznim prekidaima memorijske lokacije sa adresom FFFF16 opisuje funkcija:


&A15&A14&A13&A12&A11&A10&A9&A8&A7&A6&A5&A4&A3&A2&A1&A0

Sve funkcije, koje opisuju upravljanje prekidaima memorijskih lokacija, su tako definisane, da je uvek najvie jedna od njih tana. To znai da su u bilo kom trenutku zatvoreni samo ulazni, ili samo izlazni prekidai najvie jedne memorijske lokacije. Za prethodne funkcije se kae da dekodiraju adresu memorijske lokacije. One se, zato, nazivaju dekoderske funkcije. Dekoderske funkcije omoguuju jednoznano selektovanje memorijskih lokacija. PRINCIPIJELNI IZGLED MEMORIJE SA 4 LOKACIJE Za opisivanje funkcionisanja memorije podjednako su vani i memorijska adresa i sadraji logikih promenljivih i P, jer memorijska adresa odreuje, odnosno adresira memorijsku lokaciju kojoj se pristupa, a vrednosti logikih promenljivih i P odreuju da li se toj memorijskoj lokaciji pristupa radi itanja, ili radi pisanja. U sluaju itanja, memorijski izlaz zavisi od zateenog sadraja adresirane memorijske lokacije, a u sluaju pisanja, memorijski ulaz odreuje novi sadraj adresirane memorijske lokacije. Prethodno navedeno je dovoljno za potpun principijelni prikaz memorije sa 4 lokacije (Slika 4.1.5).

65

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


P&~A1&~A0 &~A1&~A0 &~A1& A0 & A1&~A0 & A1& A0

adresne linije

P&~A1& A0

memorijski ulaz P& A1& A0 linije podataka 16 P

P& A1&~A0

memorijski izlaz

Slika 4.1.5 Principijelni izgled memorije sa 4 lokacije Memorijskoj adresi odgovaraju adresne linije. One prenose dvobitnu adresu, koja odgovara adresnom prostoru od 22, odnosno 4 lokacije. Memorijskom ulazu i izlazu odgovaraju linije podataka. Logikim promenljivim P i odgovaraju upravljake linije. Svaka memorijska lokacija moe da sadri ceo broj, realan broj (u mainskoj normalizovanoj formi), logiku konstantu ili dva znaka (ako kod znaka zauzima jedan bajt). U poslednjem sluaju, racionalno korienje memorijskih lokacija podrazumeva programsko smetanje (pakovanje) znakova u bajte memorijske lokacije i njihovo programsko preuzimanje (raspakivanje) iz bajta memorijske lokacije. Sa stanovita korisnika, praktinije je reenje u kome je mogue direktno pristupiti ne samo rei, nego i bajtu. Ono nije usvojeno za memoriju procesora KONCEPT, jer uslonjava njenu organizaciju.

4.2. KODIRANJE I MAINSKI FORMATI NAREDBI PROCESORA KONCEPT


Mainski format svake naredbe sadri njen kod i njene operande, odnosno podatke koji omoguuju pristup njenim operandima. Poto sve naredbe nemaju istu vrstu i broj operanada, mainski formati raznih naredbi se razlikuju, ne samo po kodovima naredbi koje sadre, nego i po broju i vrsti operanada. Ako se naredbe razvrstaju na razne tipove naredbi po osnovu broja i vrste svojih operanada, tada svakom tipu naredbe odgovara jedan tip mainskog formata naredbi. Sve naredbe procesora KONCEPT se razvrstavaju, po osnovu broja i vrste svojih operanada, u 15 tipova. Prvom tipu pripadaju naredbe SABERI, SABERI_P, ODUZMI, ODUZMI_P, I i ILI sa jednim ulazno-izlaznim i jednim ulaznim registarskim operandom. Drugom tipu pripada naredba UPOREDI sa dva ulazna registarska operanda. Treem tipu pripadaju naredbe DODAJ_1, ODBIJ_1, NE, LEVO i DESNO sa jednim ulazno-izlaznim registarskim operandom. Za sve naredbe prethodna tri tipa

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

66

se podrazumeva korienje status registra, iako se on ne navodi kao operand. etvrtom tipu pripada naredba PREBACI_RR sa jednim izlaznim i jednim ulaznim registarskim operandom. Petom tipu pripada pripada naredba PREBACI_NR sa jednim izlaznim registarskim i jednim ulaznim neposrednim operandom. estom tipu pripada naredba PREBACI_DR sa jednim izlaznim registarskim i jednim ulaznim direktnim operandom. Sedmom tipu pripada naredba PREBACI_PR sa jednim izlaznim registarskim i jednim ulaznim posrednim operandom. Osmom tipu pripada naredba PREBACI_IR sa jednim izlaznim registarskim i jednim ulaznim indeksnim operandom. Devetom tipu pripada naredba PREBACI_RD sa jednim izlaznim direktnim i jednim ulaznim registarskim operandom. Desetom tipu pripada naredba PREBACI_RP sa jednim izlaznim posrednim i jednim ulaznim registarskim operandom. Jedanaestom tipu pripada naredba PREBACI_RI sa jednim izlaznim indeksnim i jednim ulaznim registarskim operandom. Dvanaestom tipu pripada naredba SKOI sa jednim operandom. Trinaestom tipu pripadaju naredbe uslovnog skoka, sa jednim operandom. Za ove naredbe se podrazumeva korienje status registra, iako se on ne navodi kao operand. etrnaestom tipu pripada naredba POZOVI, sa jednim operandom. Za ovu naredbu se podrazumeva korienje registra %15, iako se on ne navodi kao operand. Petnaestom tipu pripada naredba NATRAG, bez operanada. Za ovu naredbe se podrazumeva korienje registra %15, iako se on ne navodi kao operand Za kod svake naredbe je vano da omogui razlikovanje raznih naredbi istog tipa, ali i da omogui razlikovanje naredbi raznih tipova (odnosno razlikovanje raznih tipova njihovih mainskih formata). Zato se kod naredbe sastoji od koda tipa naredbe (koji odreuje tip mainskog formata naredbe) i od relativnog koda naredbe (koji omoguuje razlikovanje naredbi istog tipa). Za kodiranje prethodnih petnaest tipova naredbi dovoljna je jedna heksadecimalna cifra. Takoe, jedna heksadecimalna cifra je dovoljna i za relativno kodiranje naredbi unutar svakog od tipova naredbi, jer ni u jednom od njih nema vie od esnaest naredbi. Obe heksadecimalne cifre koda naredbe zauzimaju jedan bajt (iji znaajniji biti sadre kod tipa naredbe). Kao to se razni tipovi naredbi meusobno razlikuju po svojim operandima, tako se i razni operandi razlikuju po svojim svojstvima. Postoji devet vrsta operanada, pet ulaznih i etiri izlazna, est vrsta operanada ukljuuje registar (registarski, posredni i indeksni operandi, svi i ulazni i izlazni), a pet vrsta operanda ukljuuje vrednost, odnosno adresu (neposredni operand, ali i direktni i indeksni operandi, oba i ulazni i izlazni). Zato neke operande karakterie samo redni broj ili kod registra (registarski i posredni), neke samo vrednost (neposredni), neke samo adresa (direktni), a neke i kod registra i adresa (indirektni). Za kod registra je dovoljna jedna heksadecimalna cifra, jer ukupno ima esnaest registara opte namene. Za vrednost, odnosno adresu je dovoljna jedna 16 bitna re, odnosno 4 heksadecimalne cifre.

67

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Iz prethodno navedenog sledi da mainski format naredbe procesora KONCEPT treba da obuhvati jedan kod naredbe, do dva koda registara i jednu vrednost, odnosno adresu. Iako za svaku naredbu nisu potrebna dva koda registara i jedna vrednost, odnosno adresa, radi pravilnosti, za njih je predvieno mesto u mainskom formatu naredbe. Zato mainski format naredbe obuhvata do dve rei. Prva, je uvek prisutna, pa se naziva obavezna re. Ona u znaajnijem, prvom bajtu sadri kod naredbe, a u manje znaajnom, drugom bajtu kodove registara. Znaajniji biti drugog bajta obavezne rei sadre kod 1. registra, a manje znaajni biti ovog bajta sadre kod 2. registra. Podrazumeva se da drugi bajt obavezne rei nije iskorien za one tipove naredbi koji koriste samo jedan ili nijedan registar. Po potrebi, mainski format naredbe sadri i drugu, dodatnu re. U njoj se nalazi vrednost neposrednog operanda ili adresa potrebna za direktni i indeksni operand. Slika 4.2.1 prikazuje izgled mainskog formata naredbe. relativni kod kod tipa naredbe (4 bita) naredbe (4 bita) kod 1. registra (4 bita) kod 2. registra (4 bita) obavezna re dodatna re

Slika 4.2.1 Izgled mainskog formata naredbe Izbor koda tipa naredbe i relativnog koda naredbe je proizvoljan. Kao kod registra slui njegov redni broj (0: %0, 1: %1, 2: %2, 3: %3, ...). KODOVI 1. TIPA NAREDBI Naredbama prvog tipa odgovaraju kodovi:
1016 1116 1216 1316 1416 1516 SABERI SABERI_P ODUZMI ODUZMI_P I ILI

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata samo obaveznu re. Tako, za asemblersku naredbu:
SABERI %2,%3

mainski format sadri samo obaveznu re:


102316

KODOVI 2. TIPA NAREDBI Jedinoj naredbi drugog tipa odgovara kod:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


2016 UPOREDI

68

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata samo obaveznu re. Tako, za asemblersku naredbu:
UPOREDI %10,%11

mainski format sadri samo obaveznu re:


20AB16

KODOVI 3. TIPA NAREDBI Naredbama treeg tipa odgovaraju kodovi:


3016 3116 3216 3316 3416 DODAJ_1 ODBIJ_1 NE LEVO DESNO

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata samo obaveznu re. Tako, za asemblersku naredbu:
NE %5

mainski format sadri samo obaveznu re:


325x16

(x oznaava neiskoriene manje znaajne bite drugog bajta obavezne rei). KODOVI 4. TIPA NAREDBI Jedinoj naredbi etvrtog tipa odgovara kod:
4016 PREBACI_RR

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata samo obaveznu re. Tako, za asemblersku naredbu:
PREBACI_RR %12,%5

mainski format sadri samo obaveznu re:


40C516

69

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

KODOVI 5. TIPA NAREDBI Jedinoj naredbi petog tipa odgovara kod:


5016 PREBACI_NR

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata obaveznu i dodatnu re. Tako, za asemblersku naredbu:
PREBACI_NR %12,$6

mainski format sadri obaveznu i dodatnu re:


50Cx16 000616

(x oznaava neiskoriene manje znaajne bite drugog bajta obavezne rei). Slino, za asemblersku naredbu:
PREBACI_NR %3,$realan

mainski format sadri obaveznu i dodatnu re:


503x16 aaaa16

(x oznaava neiskoriene manje znaajne bite drugog bajta obavezne rei, dok aaaa oznaava adresu labele realan). KODOVI 6. TIPA NAREDBI Jedinoj naredbi estog tipa odgovara kod:
6016 PREBACI_DR

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata obaveznu i dodatnu re. Tako, za asemblersku naredbu:
PREBACI_DR %7,realan

mainski format sadri obaveznu i dodatnu re:


607x16 aaaa16

(x oznaava neiskoriene manje znaajne bite drugog bajta obavezne rei, dok aaaa oznaava adresu labele realan).

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

70

KODOVI 7. TIPA NAREDBI Jedinoj naredbi sedmog tipa odgovara kod:


7016 PREBACI_PR

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata samo obaveznu re. Tako, za asemblersku naredbu:
PREBACI_PR %12,(%5)

mainski format sadri samo obaveznu re:


70C516

KODOVI 8. TIPA NAREDBI Jedinoj naredbi osmog tipa odgovara kod:


8016 PREBACI_IR

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata obaveznu i dodatnu re. Tako, za asemblersku naredbu:
PREBACI_IR %9,t(%2)

mainski format sadri obaveznu i dodatnu re:


809216 aaaa16

(aaaa oznaava adresu labele t). KODOVI 9. TIPA NAREDBI Jedinoj naredbi devetog tipa odgovara kod:
9016 PREBACI_RD

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata obaveznu i dodatnu re. Tako, za asemblersku naredbu:
PREBACI_RD realan,%8

mainski format sadri obaveznu i dodatnu re:


908x16 aaaa16

71

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

(x oznaava neiskoriene manje znaajne bite drugog bajta obavezne rei, dok aaaa oznaava adresu labele realan). KODOVI 10. TIPA NAREDBI Jedinoj naredbi desetog tipa odgovara kod:
A016 PREBACI_RP

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata samo obaveznu re. Tako, za asemblersku naredbu:
PREBACI_RP (%4),%7

mainski format sadri samo obaveznu re:


A04716

KODOVI 11. TIPA NAREDBI Jedinoj naredbi jedanaestog tipa odgovara kod:
B016 PREBACI_RI

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata obaveznu i dodatnu re. Tako, za asemblersku naredbu:
PREBACI_RI t(%3),%9

mainski format sadri obaveznu i dodatnu re:


B03916 aaaa16

(aaaa oznaava adresu labele t). KODOVI 12. TIPA NAREDBI Jedinoj naredbi dvanaestog tipa odgovara kod:
C016 SKOI

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata obaveznu i dodatnu re. Tako, za asemblersku naredbu:
SKOI kraj

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

72

mainski format sadri obaveznu i dodatnu re:


C0xx16 aaaa16

(xx oznaava neiskorien drugi bajt obavezne rei, dok aaaa oznaava adresu labele kraj). KODOVI 13. TIPA NAREDBI Naredbama trinaestog tipa odgovaraju kodovi:
D016 D116 D216 D316 D416 D516 D616 D716 D816 D916 DA16 DB16 DC16 DD16 SKOI_ZA_== / SKOI_ZA_N SKOI_ZA_!= / SKOI_ZA_NE_N SKOI_ZA_< / SKOI_ZA_P SKOI_ZA_>= / SKOI_ZA_NE_P SKOI_ZA_> SKOI_ZA_<= SKOI_ZA__< SKOI_ZA__>= SKOI_ZA__> SKOI_ZA__<= SKOI_ZA_M SKOI_ZA_NE_M SKOI_ZA_V SKOI_ZA_NE_V

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata obaveznu i dodatnu re. Tako, za asemblersku naredbu:
SKOI_ZA_== kraj

mainski format sadri obaveznu i dodatnu re:


D0xx16 aaaa16

(xx oznaava neiskorien drugi bajt obavezne rei, dok aaaa oznaava adresu labele kraj). KODOVI 14. TIPA NAREDBI Jedinoj naredbi etrnaestog tipa odgovara kod:
E016 POZOVI

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata obaveznu i dodatnu re. Tako, za asemblersku naredbu:

73

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


POZOVI nzd

mainski format sadri obaveznu i dodatnu re:


E0Fx16 aaaa16

(Fx oznaava registar %15, ije korienje se podrazumeva, i da je neiskorien drugi bajt obavezne rei, dok aaaa oznaava adresu labele nzd). KODOVI 15 TIPA NAREDBI Jedinoj naredbi petnaestog tipa odgovara kod:
F016 NATRAG

(prva heksadecimalna cifra odreuje kod tipa naredbe). Mainski format ovog tipa naredbi obuhvata samo obaveznu re. Tako, za asemblersku naredbu:
NATRAG

mainski format sadri samo obaveznu re:


F0Fx16

(Fx oznaava registar %15, ije korienje se podrazumeva, i da je neiskorien drugi bajt obavezne rei).

4.3. ORGANIZACIJA PROCESORA KONCEPT


Mainske naredbe se uvaju u memorijskim lokacijama sa uzastopnim rastuim adresama. To znai, na primer, da se dodatna re naredbe nalazi uvek u memorijskoj lokaciji koja ima za 1 veu adresu od adrese memorijske lokacije sa obaveznom reju iste naredbe. Takoe, memorijska lokacija sa obaveznom reju naredbe ima za 1 veu adresu od adrese memorijske lokacije sa poslednjom reju njoj prethodee naredbe. Tako, na primer, sekvenci asemblerskih naredbi:
PREBACI_NR PREBACI_RR %1,$3 %2,%1

odgovaraju mainske naredbe:


501x16 000316 402116 (u lokaciji sa adresom n) (u lokaciji sa adresom n+1) (u lokaciji sa adresom n+2)

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

74

Prva mainska naredba se sastoji od obavezne rei na adresi n i od dodatne rei na adresi n+1, a druga mainska naredba se sastoji od obavezne rei na adresi n+2. Obavljanju svake mainske naredbe mora da prethodi njeno prebacivanje iz memorije u procesor. To je potrebno da bi procesor dobio iz obavezne rei naredbe kod naredbe i kodove registara (kada su potrebni), a iz dodatne rei operand (kada je naveden u dodatnoj rei naredbe). Procesor moe da proita, odnosno dobavi obaveznu re, ako poseduje njenu adresu. U toku itanja obavezne rei procesor prvo upuuje njenu adresu po adresnim linijama ka memoriji. Istovremeno on upuuje ka memoriji i signal itanja po odgovarajuoj upravljakoj liniji. Zatim procesor preuzima sa linije podataka obaveznu re. Za njeno uvanje namenjen je poseban registar naredbe. Kod naredbe odreuje operaciju koju procesor treba da obavi i lokacije operanada. Tako, za neposredno adresiranje, operand se nalazi u dodatnoj rei. Za direktno adresiranje, u dodatnoj rei se nalazi adresa operanda, a za indeksno adresiranje, u dodatnoj rei je sastojak adrese operanda. U svakom od ova tri sluaja, da bi dobavio operand, procesor mora proitati dodatnu re. Proitani operand, odnosno njegova adresa ili sastojak njegove adrese se uva u posebnom pomonom registru. itanju dodatne rei prethodi odreivanje njene adrese. To se postie uveavanjem za 1 adrese prethodno proitane obavezne rei. Za uvanje adrese dobavljane rei namenjen je poseban registar, nazvan programski broja (program counter), jer uveavanje njegovog sadraja za 1 odgovara brojanju dobavljanih rei programa. Procesor moe da pristupi obavljanju operacije tek kada raspolae kodom naredbe i njenim operandima. Za obavljanje operacija je zaduena aritmetikologika jedinica. Delove procesora (na primer, njegove registre) spajaju vezne linije. Na njima se nalaze prekidai, ijim zatvaranjem se uspostavlja veza izmeu pojedinih delova procesora. Za upravljanje stanjima prekidaa iz veznih linija zaduena je upravljaka jedinica. Registar naredbe, pomoni registar i programski broja spadaju u registre posebne namene. U ove registre spadaju i status registar, kao i registri iz aritmetiko-logike i upravljake jedinice. Slika 4.3.1 sadri prikaz organizacije procesora KONCEPT (prekida P37 razdvaja adresne linije od linija podataka).

75

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

P1 P3 P5 P7 P9 P11 P13 P15 P17 P19 P21 P23 P25 P27 P29 P31 P33 P35 16

programski broja P2 pomoni registar %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15
P4 P6 P8 P10 P12 P14 P16 P18 P20 P22 P24 P26 P28 P30 P32 P34 P36 P39 16 16 P37

adresne linije

aritmetiko logika jedinica


16 P38 4

statusna linija sa P bitom

statusne linije

status registar
4

statusne 4 linije registar naredbe


16

upravljaka jedinica

16

linije podataka
P

P40 1 P41

Slika 4.3.1 Organizacija procesora KONCEPT Obavljanje operacija se svodi na proputanje podataka, koji odgovaraju pojedinim operandima, kroz odabrane sklopove aritmetiko-logike jedinice. Na taj nain se ovi podaci transformiu u rezultat operacije. Pre transformisanja podaci se uvaju u posebnim registrima 1. i 2. podatka. Konstanta 1, kojom se uveava sadraj programskog brojaa, se uva u posebnom registru konstante. Slika 4.3.2 sadri prikaz organizacije aritmetiko-logike jedinice.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

76

linije podataka 16

statusna linija sa P bitom

0000000000000001
P42 P43 P44 P45

registar 1. podatka

registar 2. podatka

P46

P47

P48

P49

P50

P51

P52

desno

levo

ne

ili

oduzmi

saberi

16

linije podataka

statusn linij 4 sa uslovnim bitima

Slika 4.3.2 Organizacija aritmetiko-logike jedinice Sklopovi saberi, oduzmi, i, ili, ne, levo i desno aritmetiko-logike jedinice ostvaruju logike funkcije pojedinih naredbi procesora KONCEPT. U aritmetikologiku jedinicu ulazi sadraj P bita status registra radi obavljanja aritmetikih operacija u dvostrukoj preciznosti, a iz njega izlaze novi sadraji uslovnih bita (N, P, M i V). Aktivnost procesora je periodina. U svakom periodu procesor izvri jednu mainsku naredbu. Njeno izvravanje obuhvata dve faze: fazu dobavljanja i fazu obavljanja naredbe. U fazi dobavljanja se dobavlja obavezna re mainske naredbe i smeta u registar naredbe. Pri tome se koristi i uveava sadraj programskog brojaa. U fazi obavljanja se obavlja naredba ija obavezna re je dobavljena u fazi dobavljanja. U fazi obavljanja se dobavlja i dodatna re njenog mainskog formata, ako postoji. Dobavljanje dodatne rei se ne razlikuje od dobavljanja obavezne rei.

77

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

4.4. UPRAVLJANJE PROCESOROM KONCEPT


Upravljanje procesorom KONCEPT se svodi na upravljanje njegovim prekidaima s ciljem njihovog dovoenja u zadana stanja. Na primer, zatvaranje pojedinih prekidaa uspostavlja fiziki put izmeu izlaza jednog i ulaza drugog registra i omoguuje prenos sadraja iz prvog u drugi registar. Podrazumeva se da pomenuti prekidai ostaju zatvoreni u toku obavljanja ovakve elementarne radnje procesora. Poto se u toku aktivnosti procesora ponavljaju obavljanja elementarnih radnji poput prethodno pomenute, upravljanje procesorom ima ciklian karakter. U svakom ciklusu ono prevodi prekidae u stanja koja omoguuju obavljanje jedne ili vie meusobno nezavisnih elementarnih radnji i zadri ih u tim stanjima dok se date elementarne radnje ne obave. Pretpostavka je da svi ciklusi imaju isto trajanje. Na nivou ciklusa je mogue precizno opisati i fazu dobavljanja i fazu obavljanja. Faza dobavljanja se sastoji od tri ciklusa: 1. ciklus: programski broja adresne linije (P2) 1 (P41) linije podataka registar naredbe (P39) 2. ciklus: programski broja registar 1. podatka (P2, P37, P42) 1 registar 2. podatka (P44) 3. ciklus: saberi (P52) linije podataka programski broja (P1) Svaki red u opisu ciklusa je posveen posebnoj elementarnoj radnji procesora. Elementarne radnje iz istog ciklusa se obavljaju istovremeno, a elementarne radnje iz raznih ciklusa se obavljaju sekvencijalno. Za elementarne radnje, namenjene prenosu sadraja, strelica oznaava smer u kome se sadraj prenosi. Na primer, u prvoj elementarnoj radnji 1. ciklusa, sadraj programskog brojaa se prenosi na adresne linije. Sadraj, koji se prenosi na adresne i druge linije procesora, ostaje prisutan na njima samo u toku trajanja ciklusa. Elementarne radnje omoguuju ne samo prenos sadraja na raznim relacijama, nego i aktiviranje pojedinih sklopova aritmetiko-logike jedinice. To je, na primer, sluaj sa prvom elementarnom radnjom 3. ciklusa. Oznake prekidaa, ija zatvaranja omoguuju obavljanje neke elementarne radnje, se navode izmeu malih zagrada za tu elementarnu radnju. U 1. od prethodna 3 ciklusa, sadraj obavezne rei mainske naredbe stigne u registar naredbe. Adresu memorijske lokacije sa obaveznom reju sadri programski broja. U 2. ciklusu zateeni sadraj programskog brojaa stigne u registar 1. podatka, a istovremeno konstanta 1 stigne u registar 2. podatka. Tom konstantom se uvea zateeni sadraj programskog brojaa u 3. ciklusu, tako da nakon toga programski broja sadri adresu naredne memorijske lokacije. U svakom od ciklusa, koje procesor posveti jednoj naredbi, obavi se elementarni deo dotine naredbe. Zato se moe rei da u toku ciklusa procesor

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

78

obavi jednu mikro-naredbu ukupne naredbe. Vie mikro-naredbi obrazuje mikroprogram. Tako fazi dobavljanja odgovara mikro-program dobavljanja, dok fazi obavljanja svakog tipa naredbe odgovara poseban mikro-program obavljanja. MIKRO-PROGRAMI OBAVLJANJA
ODUZMI_P, I

Mikro-program obavljanja 1. tipa naredbi (SABERI, i ILI) izgleda:

SABERI_P,

ODUZMI,

1. ciklus: %r1 registar 1. podatka (P2r1+6, P42) 2. ciklus: %r2 registar 2. podatka (P2r2+6, P43) 3. ciklus: saberi (P52)/(P52, P45)/ oduzmi (P51)/(P51, P45)/ i (P50)/ ili (P49) linije podataka %r1 (P2r1+5) statusne linije status registar (P38) U 1. ciklusu sadraj registra %r1, odreenog prvim registarskim operandom, stigne u registar 1. podatka. U 2. ciklusu sadraj registra %r2, odreenog drugim registarskim operandom, stigne u registar 2. podatka. Do obavljanja operacije (odreene kodom naredbe) dolazi u 3. ciklusu (u opisu ovog ciklusa, alternativne mikro-naredbe su razdvojene znakom /). Za vreme 3. ciklusa rezultat operacije stigne u registar %r1, koga odreuje prvi registarski operand, a nove vrednosti uslovnih bita stignu u najmanje znaajna 4 bita status registra. Mikro-program obavljanja 2. tipa naredbi (UPOREDI) izgleda: 1. ciklus: %r1 registar 1. podatka (P2r1+6, P42) 2. ciklus: %r2 registar 2. podatka (P2r2+6, P43) 3. ciklus: oduzmi (P51) statusne linije status registar (P38) U 1. ciklusu sadraj registra %r1, odreenog prvim registarskim operandom, stigne u registar 1. podatka. U 2. ciklusu sadraj registra %r2, odreenog drugim registarskim operandom, stigne u registar 2. podatka. Radi njihovog poreenja, u 3. ciklusu se obavi operacija oduzimanja, a kao rezultat poreenja, nove vrednosti uslovnih bita stignu u najmanje znaajna 4 bita status registra. Mikro-program obavljanja 3. tipa naredbi (DODAJ_1, ODBIJ_1, NE, LEVO i DESNO) izgleda: 1. ciklus: registar 1. podatka (P2r1+6, P42) 1 registar 2. podatka (P44) 2. ciklus: saberi (P52)/ oduzmi (P51)/ ne (P48)/ levo (P47)/ desno (P46) linije podataka %r1 (P2r1+5) statusne linije status registar (P38)
%r1

79

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

U 1. ciklusu sadraj registra %r1, odreenog prvim registarskim operandom, stigne u registar 1. podatka, a istovremeno konstanta 1 stigne u registar 2. podatka. Do obavljanja operacije (odreene kodom naredbe) dolazi u 3. ciklusu (u opisu ovog ciklusa, alternativne mikro-naredbe su razdvojene znakom /). Za vreme 3. ciklusa rezultat operacije stigne u registar %r1, koga odreuje prvi registarski operand, a nove vrednosti uslovnih bita stignu u najmanje znaajna 4 bita status registra. Mikro-program obavljanja 4. tipa naredbi (PREBACI_RR) izgleda: 1. ciklus: %r2 pomoni registar (P2r2+6, P3) 2. ciklus: pomoni registar %r1 (P4, P37,P2r1+5) U 1. ciklusu sadraj registra %r2, odreenog drugim registarskim operandom, stigne u pomoni registar, a u 2. ciklusu ovaj sadraj iz pomonog registra stigne u registar %r1, koga odreuje prvi registarski operand. Mikro-program obavljanja 5. tipa naredbi (PREBACI_NR) izgleda: 1. ciklus: programski broja adresne linije (P2) 1 (P41) linije podataka %r1 (P2r1+5) 2. ciklus: programski broja registar 1. podatka (P2, P37, P42) 1 registar 2. podatka (P44) 3. ciklus: saberi (P52) linije podataka programski broja (P1) U 1. ciklusu sadraj dodatne rei mainske naredbe, sa vrednou drugog neposrednog operanda, stigne u registar %r1, koga odreuje prvi registarski operand naredbe. Adresu memorijske lokacije sa dodatnom reju sadri programski broja. U 2. ciklusu zateeni sadraj programskog brojaa stigne u registar 1. podatka, a istovremeno konstanta 1 stigne u registar 2. podatka. Tom konstantom se uvea zateeni sadraj programskog brojaa u 3. ciklusu, tako da nakon toga programski broja sadri adresu naredne memorijske lokacije. Mikro-program obavljanja 6. tipa naredbi (PREBACI_DR) izgleda:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

80

1. ciklus: programski broja adresne linije (P2) 1 (P41) linije podataka pomoni registar (P3) 2. ciklus: programski broja registar 1. podatka (P2, P37, P42) 1 registar 2. podatka (P44) 3. ciklus: saberi (P52) linije podataka programski broja (P1) 4. ciklus: pomoni registar adresne linije (P4) 1 (P41) linije podataka %r1 (P2r1+5) U 1. ciklusu sadraj dodatne rei mainske naredbe, sa adresom izvorine lokacije (u kojoj se nalazi vrednost drugog direktnog operanda), stigne u pomoni registar. Adresu memorijske lokacije sa dodatnom reju sadri programski broja. U 2. ciklusu zateeni sadraj programskog brojaa stigne u registar 1. podatka, a istovremeno konstanta 1 stigne u registar 2. podatka. Tom konstantom se uvea zateeni sadraj programskog brojaa u 3. ciklusu, tako da nakon toga programski broja sadri adresu naredne memorijske lokacije. U 4. ciklusu iz izvorine lokacije, iju adresu sadri pomoni registar, stigne vrednost drugog direktnog operanda u registar %r1, koga odreuje prvi registarski operand naredbe. Mikro-program obavljanja 7. tipa naredbi (PREBACI_PR) izgleda: 1. ciklus: %r2 pomoni registar (P2r2+6, P3) 2. ciklus: pomoni registar adresne linije (P4) 1 (P41) linije podataka %r1 (P2r1+5) U 1. ciklusu iz registra %r2, odreenog drugim registarskim operandom naredbe, stigne adresa izvorine lokacije (sa vrednou drugog posrednog operanda) u pomoni registar. U 2. ciklusu iz izvorine lokacije, iju adresu sadri pomoni registar, stigne vrednost drugog direktnog operanda u registar %r1, koga odreuje prvi registarski operand naredbe. Mikro-program obavljanja 8. tipa naredbi (PREBACI_IR) izgleda:

81

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

1. ciklus: programski broja adresne linije (P2) 1 (P41) linije podataka pomoni registar (P3) 2. ciklus: programski broja registar 1. podatka (P2, P37, P42) 1 registar 2. podatka (P44) 3. ciklus: saberi (P52) linije podataka programski broja (P1) 4. ciklus pomoni registar registar 1. podatka (P4, P37, P42) 5. ciklus %r2 registar 2. podatka (P2r2+6, P43) 6. ciklus: saberi (P52) linije podataka pomoni registar (P3) 7. ciklus: pomoni registar adresne linije (P4) 1 (P41) linije podataka %r1 (P2r1+5) U 1. ciklusu sadraj dodatne rei mainske naredbe, sa prvim sastojkom adrese izvorine lokacije (u kojoj se nalazi vrednost drugog indeksnog operanda), stigne u pomoni registar. Adresu memorijske lokacije sa dodatnom reju sadri programski broja. U 2. ciklusu zateeni sadraj programskog brojaa stigne u registar 1. podatka, a istovremeno konstanta 1 stigne u registar 2. podatka. Tom konstantom se uvea zateeni sadraj programskog brojaa u 3. ciklusu, tako da nakon toga programski broja sadri adresu naredne memorijske lokacije. U 4. ciklusu iz pomonog registra stigne prvi sastojak adrese izvorine lokacije u registar 1. podatka, a u 5. ciklusu iz registra %r2, koga odreuje drugi indeksni operand naredbe, stigne drugi sastojak adrese izvorine lokacije u registar 2. podatka. U 6. ciklusu se saberu pomenuta dva sastojka adrese izvorine lokacije i ova adresa stigne u pomoni registar. U 7. ciklusu iz izvorine lokacije, iju adresu sadri pomoni registar, stigne vrednost drugog indeksnog operanda u registar %r1, koga odreuje prvi registarski operand naredbe. Mikro-program obavljanja 9. tipa naredbi (PREBACI_RD) izgleda: 1. ciklus: programski broja adresne linije (P2) 1 (P41) linije podataka pomoni registar (P3) 2. ciklus: programski broja registar 1. podatka (P2, P37, P42) 1 registar 2. podatka (P44) 3. ciklus: saberi (P52) linije podataka programski broja (P1) 4. ciklus: pomoni registar adresne linije (P4) 1 P (P40) %r1 linije podataka (P2r1+6)

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

82

U 1. ciklusu sadraj dodatne rei mainske naredbe, sa adresom odredine lokacije (koja odgovara prvom direktnom operandu), stigne u pomoni registar. Adresu memorijske lokacije sa dodatnom reju sadri programski broja. U 2. ciklusu zateeni sadraj programskog brojaa stigne u registar 1. podatka, a istovremeno konstanta 1 stigne u registar 2. podatka. Tom konstantom se uvea zateeni sadraj programskog brojaa u 3. ciklusu, tako da nakon toga programski broja sadri adresu naredne memorijske lokacije. U 4. ciklusu iz registra %r1, koga odreuje prvi registarski operand naredbe, stigne vrednost u odredinu lokaciju, iju adresu ove lokacije sadri pomoni registar. Mikro-program obavljanja 10. tipa naredbi (PREBACI_RP) izgleda: 1. ciklus: %r1 pomoni registar (P2r1+6, P3) 2. ciklus: pomoni registar adresne linije (P4) 1 P (P40) %r2 linije podataka (P2r2+6) U 1. ciklusu iz registra %r1, odreenog prvim posrednim operandom naredbe, stigne adresa odredine lokacije (koja odgovara prvom posrednom operandu) u pomoni registar. U 2. ciklusu iz registra %r2, koga odreuje drugi registarski operand naredbe, stigne vrednost u odredinu lokaciju, iju adresu sadri pomoni registar. Mikro-program obavljanja 11. tipa naredbi (PREBACI_RI) izgleda: 1. ciklus: programski broja adresne linije (P2) 1 (P41) linije podataka pomoni registar (P3) 2. ciklus: programski broja registar 1. podatka (P2, P37, P42) 1 registar 2. podatka (P44) 3. ciklus: saberi (P52) linije podataka programski broja (P1) 4. ciklus pomoni registar registar 1. podatka (P4, P37, P42) 5. ciklus %r1 registar 2. podatka (P2r1+6, P43) 6. ciklus: saberi (P52) linije podataka pomoni registar (P3) 7. ciklus: pomoni registar adresne linije (P4) 1 P (P40) %r2 linije podataka (P2r2+6) U 1. ciklusu sadraj dodatne rei mainske naredbe, sa prvim sastojkom adrese odredine lokacije (koja odgovara prvom indeksnom operandu), stigne u pomoni registar. Adresu memorijske lokacije sa dodatnom reju sadri programski broja.

83

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

U 2. ciklusu zateeni sadraj programskog brojaa stigne u registar 1. podatka, a istovremeno konstanta 1 stigne u registar 2. podatka. Tom konstantom se uvea zateeni sadraj programskog brojaa u 3. ciklusu, tako da nakon toga programski broja sadri adresu naredne memorijske lokacije. U 4. ciklusu iz pomonog registra stigne prvi sastojak adrese odredine lokacije u registar 1. podatka, a u 5. ciklusu iz registra %r1, koga odreuje prvi indeksni operand naredbe, stigne drugi sastojak adrese odredine lokacije u registar 2. podatka. U 6. ciklusu se saberu pomenuta dva sastojka adrese odredine lokacije i ova adresa stigne u pomoni registar. U 7. ciklusu iz registra %r2, koga odreuje drugi registarski operand naredbe, stigne vrednost prvog indeksnog operanda u odredinu lokaciju, iju adresu sadri pomoni registar. Mikro-program obavljanja 12. tipa naredbi (SKOI) izgleda: 1. ciklus: programski broja adresne linije (P2) 1 (P41) linije podataka pomoni registar (P3) 2. ciklus: pomoni registar programski broja (P4, P37, P1) U 1. ciklusu sadraj dodatne rei mainske naredbe, sa adresom ciljne naredbe (od koje se nastavlja izvravanje), stigne u pomoni registar. Adresu memorijske lokacije sa dodatnom reju sadri programski broja. U 2. ciklusu adresa ciljne naredbe iz pomonog registra stigne u programski broja. Mikro-program obavljanja 13. tipa naredbi (uslovni skokovi) izgleda: 1. ciklus: programski broja adresne linije (P2) 1 (P41) linije podataka pomoni registar (P3) 2. ciklus: programski broja registar 1. podatka (P2, P37, P42) 1 registar 2. podatka (P44) 3. ciklus: saberi (P52) linije podataka programski broja (P1) 4. ciklus: ? pomoni registar programski broja (P4, P37, P1) U 1. ciklusu sadraj dodatne rei mainske naredbe, sa adresom ciljne naredbe (od koje se eventualno nastavlja izvravanje), stigne u pomoni registar. Adresu memorijske lokacije sa dodatnom reju sadri programski broja. U 2. ciklusu zateeni sadraj programskog brojaa stigne u registar 1. podatka, a istovremeno konstanta 1 stigne u registar 2. podatka. Tom konstantom se uvea zateeni sadraj programskog brojaa u 3. ciklusu, tako da nakon toga programski broja sadri adresu naredne naredbe. Ako je ispunjen uslov naredbe uslovnog skoka, u 4. ciklusu adresa ciljne naredbe iz pomonog registra stigne u programski broja.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

84

Mikro-program obavljanja 14. tipa naredbi (POZOVI) izgleda: 1. ciklus: programski broja adresne linije (P2) 1 (P41) linije podataka pomoni registar (P3) 2. ciklus: programski broja registar 1. podatka (P2, P37, P42) 1 registar 2. podatka (P44) 3. ciklus: saberi (P52) linije podataka %15 (P35) 4. ciklus: pomoni registar programski broja (P4, P37, P1) U 1. ciklusu sadraj dodatne rei mainske naredbe, sa adresom ciljne naredbe (od koje se nastavlja izvravanje), stigne u pomoni registar. Adresu memorijske lokacije sa dodatnom reju sadri programski broja. U 2. ciklusu zateeni sadraj programskog brojaa stigne u registar 1. podatka, a istovremeno konstanta 1 stigne u registar 2. podatka. Tom konstantom se uvea zateeni sadraj programskog brojaa u 3. ciklusu, a tako dobijena povratna adresa stigne u registar %15. U 4. ciklusu adresa ciljne naredbe iz pomonog registra stigne u programski broja. Mikro-program obavljanja 15. tipa naredbi (NATRAG) izgleda: 1. ciklus:
%15

programski broja (P36, P1)

U 1. i jedinom ciklusu povratna adresa iz registra %15 stigne u programski broja. INICIJALNI MIKRO-PROGRAM Procesor moe da zapone izvravanje nekog programa tek kada programski broja sadri adresu ulazne naredbe tog programa. Adresa ulazne naredbe, od koje poinje izvravanje programa, se naziva ulazna adresa programa. Znai, da bi procesor zapoeno izvravanje nekog programa, na poetku rada procesora u programski broja treba da dospe ulazna adresa tog programa. Pod pretpostavkom da nulta memorijska lokacija uvek sadri ulaznu adresu programa, koga procesor treba da izvri, poetak rada procesora opisuje inicijalni mikro-program: 1. ciklus: 000016 adresne linije 1 (P41) linije podataka programski broja (P1)

Inicijalni mikro-program puni ulaznu adresu u programski broja. Slika 4.4.1 sadri dijagram koji opisuje nastavak rada procesora.

85

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

inicijalni mikro-program

mikro-program dobavljanja

mikro-program obavljanjai i=1,...,15

Slika 4.4.1 Opis prelazaka izmeu mikro-programa Inicijalni mikro-program aktivira mikro-program dobavljanja, koji aktivira jedan od mikro-programa obavljanja, po ijem zavretku se opet aktivira mikroprogram dobavljanja.

4.5. UPRAVLJAKA JEDINICA PROCESORA KONCEPT


Trajanje ciklusa, odnosno vreme obavljanja mikro-naredbi nije zanemarljivo, jer fiziki signali putuju konanom brzinom kroz fiziki ekvivalent veznih linija procesora i kroz sklopove aritmetiko-logike jedinice. Mikro-naredba je obavljena uspeno tek kada fiziki signali preu ceo put, predvien za tu radnju. Ovakav put nastane zatvaranjem odgovarajuih prekidaa. Zadatak upravljake jedinice je da, pre obavljanja mikro-naredbi, dovede prekidae u potrebno stanje i da ih zadri u tom stanju dok se pomenute mikro-naredbe ne obave. Upravljaka jedinica utie na stanja prekidaa posredstvom prekidakih argumenata. Kako su svi prekidaki argumenti logike vrednosti, za smetanje svakog od ovih argumenata dovoljan je po jedan bit posebnog upravljakog registra (sa oznakom UR i sa oznakom URj za bit j). Na taj nain od sadraja upravljakog registra zavisi stanje pojedinih prekidaa. Prema tome, sadraj upravljakog registra odreuje koja mikro-naredba se obavlja u datom ciklusu i ujedno predstavlja mainski oblik obavljane mikronaredbe. Obavljanju mikro-naredbe obavezno prethodi njeno dobavljanje, u toku koga se mainski oblik mikro-naredbe smeta u upravljaki registar. Iz prethodnog sledi da izmeu ponaanja procesora na nivou mikro-naredbi i na nivou naredbi postoji jasna slinost. Glavna razlika izmeu ponaanja procesora na ova dva nivoa je u obimu posla koji se obavlja. Dobavljanje mikro-naredbe je vezano za poetni deo ciklusa, na primer, za prvi poluciklus, dok je obavljanje mikro-naredbe vezano za zavrni deo ciklusa, za drugi poluciklus. Razlikovanje poluciklusa dobavljanja od poluciklusa obavljanja omoguuje posebna logika promenljiva T (takt). Ona periodino menja vrednost, tako da uvek sadri vrednost 1 u poluciklusu dobavljanja, a vrednost 0 u poluciklusu obavljanja. Fizika realizacija periodinih izmena vrednosti ove logike promenljive se oslanja na korienje elektronskih oscilatora, koji omoguuju stvaranje signala pravilnog perioda. Pravilna periodinost izmene vrednosti logike promenljive T uvodi pojam vremena, pa se izmene njene vrednosti mogu prikazati vremenskim dijagramom (Slika 4.5.1).

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


1 0

86

Slika 4.5.1 Vremenski dijagram periodine izmene vrednosti promenljive T Za uvanje mainskih oblika mikro-naredbi potrebna je posebna mikroprogramska memorija. Veliinu njenih lokacija odreuje broj bita u mainskim oblicima mikro-naredbi. Broj lokacija mikro-programske memorije zavisi od ukupnog broja mikro-naredbi u svim mikro-programima. U sluaju procesora KONCEPT, taj broj ne prelazi 128 mikro-naredbi, pa je za mikro-programsku memoriju dovoljno 128 lokacija. To istovremeno znai da je za adresu lokacije mikro-programske memorije potrebno 7 bita. U toku dobavljanja mikro-naredbi, u upravljaki registar se prebacuju sadraji odgovarajuih lokacija mikro-programske memorije. Za izvravanja mikroprograma je potrebno da se njihove mikro-naredbe dobavljaju i obavljaju u redosledu u kome su navedene u mikro-programima. To je mogue ostvariti bez posebnog programskog brojaa, ako mainski oblik svake mikro-naredbe u najmanje znaajnih 7 bita sadri adresu naredne mikro-naredbe, odnosno, adresu lokacije mikro-programske memorije sa mainskim oblikom naredne mikronaredbe. Ali, ova, naredna adresa ne sme biti u upravljakom registru za vreme dobavljanja naredne mikro-naredbe, jer se tada smeta novi sadraj u upravljaki registar, pa njegov dotadanji sadraj, ukljuujui i narednu adresu, nije pristupaan. Zato, uz upravljaki registar, postoji i registar sekvence (sa oznakom RS i sa oznakom RSj za bit j). Da bi naredna adresa bila raspoloiva u poluciklusu dobavljanja, ona se prebacuje iz upravljakog registra u registar sekvence u poluciklusu obavljanja i to neposredno nakon poluciklusa dobavljanja, u toku koga je ona dospela u upravljaki registar. Procesor KONCEPT zapoinje svoju aktivnost izvravanjem inicijalnog mikro-programa, ako se, na poetku rada procesora, u registru sekvence nalazi adresa ulazne (i jedine) mikro-naredbe inicijalnog mikro-programa. Ovu, ulaznu adresu inicijalnog mikro-programa sadri poseban inicijalni registar. Pre poetka rada procesora, sadraj inicijalnog registra se prebacuje u registar sekvence. Otkrivanje poetka rada procesora KONCEPT omoguuje posebna logika promenljiva R, koja ima vrednost 0 kada procesor ne radi, a vrednost 1 dok god procesor radi. Izmene vrednosti ove logike promenljive utiu na izmene vrednosti logike promenljive T. Tako, logika promenljiva T ima vrednost 0 dok god istu vrednost ima i logika promenljiva R. Ove dve logike promenljive istovremeno izmene vrednost sa 0 na 1. Vrednost logike promenljive T se periodino menja dok god logika promenljiva R zadrava vrednost 1. Slika 4.5.2 sadri vremenski dijagram izmena vrednosti logikih promenljivih R i T.

87
1 0 1 0

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

R T

R T

... ...

Slika 4.5.2 Vremenski dijagram periodine izmene vrednosti promenljivih R i T Jedina mikro-naredba inicijalnog mikro-programa kao narednu adresu sadri ulaznu adresu mikro-programa dobavljanja. Naredna adresa poslednje mikronaredbe mikro-programa dobavljanja ne moe ukazati na mikro-program obavljanja, jer postoji vie mikro-programa obavljanja, pa izbor jedne od njihovih ulaznih adresa zavisi od tipa naredbe. Zato se ulazna adresa mikro-programa obavljanja odreuje iz koda tipa naredbe. Najjednostavnije reenje je da kod tipa naredbe bude jednak ulaznoj (7 bitnoj) adresi odgovarajueg mikro-programa. Ali ono nije prihvatljivo, jer su za kod tipa naredbe predviena samo 4 bita u obaveznoj rei mainskog oblika naredbe. Poto svaki mikro-program ima najvie do 7 mikronaredbi i ne zahteva vie od 7 lokacija, mikro-programska memorija se moe podeliti u segmente od po 8 lokacija, tako da je svaki od njih namenjen za jedan mikro-program. U mikro-programskoj memoriji sa 128 lokacija takvih segemenata ima 16 i to je dovoljno za smetanje 15 mikro-programa obavljanja, mikroprograma dobavljanja i inicijalnog mikro-programa, ako se poslednja dva mikroprograma smeste u isti segment. Za adresiranje 16 segmenata su dovoljna 4 bita. Ako se u segment sa adresom 00002 smeste mikro-program dobavljanja i inicijalni mikro-program, tada za adresiranje ostalih segmenata mogu posluiti 4 bita koda tipa naredbe. Za adresiranje lokacija u segmentu su potrebna jo 3 bita. Poto poetna lokacija u svakom segmentu ima adresu 0002, dodavanjem 3 nule iza 4 bita koda tipa naredbe, nastaje 7 bitna ulazna adresa odgovarajueg mikro-programa obavljanja. Ovakvu transformaciju koda tipa naredbe u ulaznu adresu odgovarajueg mikro-programa obavljanja pravi dekoder naredbe. Poslednja mikro-naredba svakog od mikro-programa obavljanja kao narednu adresu koristi ulaznu adresu mikro-programa dobavljanja. Sadraji lokacija mikro-programske memorije su nepromenljivi (jer su odreeni arhitekturom naredbi procesora KONCEPT). Zato je za njih dovoljno predvideti samo itanje njihovih lokacija. Isto vai i za inicijalni registar. Stanje svakog prekidaa procesora KONCEPT zavisi od vrednosti odgovarajue prekidake funkcije. Sve prekidake funkcije implementira istoimeni sklop upravljake jedinice. Slika 4.5.3 prikazuje organizaciju upravljake jedinice procesora KONCEPT.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

88

16 bita obavezne rei

statusne linije

4 najznaajnija bita obavezne rei (kod tipa naredbe) inicijalni registar 7 P53 7 dekoder naredbe P54 7 P55 registar sekvence 7 mikro programska memorija R&T 25 upravljaki registar 25 P56 prekidake funkcije 16

7 najmanje znaajnih bita upravljakog registra

18 najznaajnijih bita upravljakog registra

Slika 4.5.3 Organizacija upravljake jedinice Pre poetka rada procesora KONCEPT, sadraj inicijalnog registara se prebaci u registar sekvence. To omoguuje prekida P53. U toku rada procesora KONCEPT, naizmenino se ponavljaju ciklusi dobavljanja i obavljanja mikronaredbi. U upravljaku jedinicu ulazi snop sa 16 linija, koji polazi od registra naredbe (sa oznakom RN i sa oznakom RNj za bit j). Njegove 4 najznaajnije linije prenose kod tipa naredbe do dekodera naredbe. Adresa lokacije mikro-programske memorije dolazi: 1. ili iz dekodera naredbi, 2. ili iz registra sekvence. Izbor jednog od ova 2 izvora adrese zavisi stanja prekidaa P54 i P55.

89

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

U bite registra sekvence u poluciklusu obavljanja se prebacuje sadraj korespondentnih 7 najmanje znaajnih bita upravljakog registra, kada je zatvoren prekida P56. Do itanja lokacije mikro-programske memorije dolazi samo u poluciklusu dobavljanja, kada je tana funkcija:
R&T

pa njena vrednost odreuje stanje jedine upravljake linije mikro-programske memorije, koja omoguuje itanje njenih lokacije. U ciklusu dobavljanja svake mikro-naredbe, upravljaki registar se puni sadrajem odgovarajue lokacije mikro-programske memorije.

4.6. UPRAVLJANJE PREKIDAIMA IZ UPRAVLJAKE JEDINICE PROCESORA KONCEPT


Uloga prekidaa P53 je da pre poetka rada procesora omogui punjenje registra sekvence sadrajem inicijalnog registra. To se desi kada procesor ne radi, pa je jedini argument ovog prekidaa P53 logika promenljiva R. Upravljanje ovim prekidaem opisuje funkcija:
~R

Prekida P53 je jedini prekida koji je zatvoren kada procesor ne radi. Svi ostali prekidai (koji se nalaze i u upravljakoj jedinici i van nje) se zatvaraju samo kada procesor radi, pa je zato logika promenljiva R obavezni argument svih ostalih prekidaa. Isto vai i za logiku promenljivu T, jer ona odreuje poluciklus u kome se prekidai zatvaraju. Logike promenljive R i T predstavljaju zajednike argumente svih ostalih prekidaa. Od njih zavisi stanje prekidaa P56, koji omoguuje periodina punjenja registra sekvence. Ova punjenja se deavaju u poluciklusima obavljanja, pa upravljanje prekidaem P56 opisuje funkcija:
R&~T

Prekidai P54 i P55 odreuju odakle stie adresa u mikro-programsku memoriju. U svakom trenutku najvie jedan od ova dva prekidaa sme da bude zatvoren. Prekida P54 treba da bude zatvoren iza obavljanja mikro-programa dobavljanja, jer tada iz dekodera naredbe treba da stigne do mikro-programske memorije ulazna adresa mikro-programa obavljanja datog tipa naredbe. To je jedina situacija u kojoj prekida P54 treba da bude zatvoren. Na ovu situaciju moe da ukae sadraj registra sekvence, ako se na kraju mikro-programa dobavljanja u ovaj registar kao naredna adresa smesti ulazna adresa nekog mikro-programa obavljanja. Kao takva moe da poslui bilo koja od ulaznih adresa mikro-programa obavljanja, jer one stiu u mikro-programsku memoriju samo iz dekodera naredbi (pa ne mogu

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

90

na drugi nain postati sadraj registra sekvence). Na primer, moe se odabrati ulazna adresa 00010002 mikro-programa obavljanja 1. tipa naredbi. Znai, kada ta adresa stigne u registar sekvence u jednom poluciklusu obavljanja neke mikronaredbe, tada u sledeem poluciklusu dobavljanja naredne mikro-naredbe treba da bude zatvoren prekida P54. Prisustvo ove ulazne adrese u registru sekvence detektuje logika funkcija IZA_DOBAVLJANJA:
~RS6&~RS5&~RS4&RS3&~RS2&~RS1&~RS0

pa prekidaka funkcija prekidaa P54 izgleda:


R&T&IZA_DOBAVLJANJA

Za prekida P55 prekidaka funkcija izgleda:


R&T&~IZA_DOBAVLJANJA

jer prekida P55 treba da bude zatvoren u svim poluciklusima dobavljanja mikronaredbe, kada tome ne prethodi obavljanje poslednje mikro-naredbe mikroprograma dobavljanja. Argumenti funkcije IZA_DOBAVLJANJA predstavljaju posebne argumente prekidakih funkcija prekidaa P54 i P55.

4.7. UPRAVLJANJE PREKIDAIMA IZVAN UPRAVLJAKE JEDINICE PROCESORA KONCEPT


Kao posebni argumenti prekidakih funkcija prekidaa izvan upravljake jedinice procesora KONCEPT slue biti upravljakog registra (izuzimajui narednu adresu iz najmanje znaajnih sedam bita). Stanje prekidaa P1 zavisi od bita 7 upravljakog registra, ako nije re o uslovnom skoku. U sluaju uslovnih skokova, prekida P1 sme da bude zatvoren samo ako je uslov ispunjen (ovim se obezbeuje uslovno obavljanje 4. mikronaredbe iz mikro-programa obavljanja 13. tipa naredbi). Zato upravljanje ovim prekidaem opisuje funkcija:
R&~T&UR7&(~USLOVNI_SKOK|USLOV_ISPUNJEN)

Proveru da li se izvrava uslovna upravljaka naredba omoguuju 4 najznaajnija bita registra naredbe RNi (i = 15, 14, 13, 12) u kojima se nalazi kod tipa naredbe. Ovu proveru opisuje funkcija USLOVNI_SKOK:
~RN15&RN14&~RN13&~RN12

Prethodna funkcija ima vrednost 1 samo kada se u registru naredbe nalazi kod tipa

91

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

naredbe uslovnih upravljakih naredbi (01002). Ova funkcija tako dekodira uslovne upravljake naredbe. Proveru ispunjenosti uslova izvravane uslovne upravljake naredbe omoguuju logike funkcije Di (i = 0, ... , 13). Svaka od njih je vezana za jednu uslovnu upravljaku naredbu i ima vrednost 1, ako se izvrava dotina naredba i ako je uslov te naredbe ispunjen. Poto relativni kod uslovne upravljake naredbe sadre druga (po znaaju) 4 bita registra naredbe, a ispunjenost uslova ove naredbe zavisi od sadraja 4 najmanje znaajna bita status registra, kao argumenti logikih funkcija Di slue sadraji pomenutih bita registra naredbe RNi (i = 11, 10, 9, 8) i sadraji uslovnih bita status registra:
D0: D1: D2: D3: D4: D5: D6: D7: D8: D9: D10: D11: D12: D13: ~RN11&~RN10&~RN9&~RN8&N ~RN11&~RN10&~RN9& RN8&~N ~RN11&~RN10& RN9&~RN8&P ~RN11&~RN10& RN9& RN8&~P ~RN11& RN10&~RN9&~RN8&(~P&~N) ~RN11& RN10&~RN9& RN8&(P|N) ~RN11& RN10& RN9&~RN8&(M^V) ~RN11& RN10& RN9& RN8&(~(M^V)) RN11&~RN10&~RN9&~RN8&(~(M^V))&~N) RN11&~RN10&~RN9& RN8&((M^V)&N) RN11&~RN10& RN9&~RN8&M RN11&~RN10& RN9& RN8&~M RN11& RN10&~RN9&~RN8&V RN11& RN10&~RN9& RN8&~V (SKOI_ZA_==) (SKOI_ZA_!=) (SKOI_ZA_<) (SKOI_ZA_>=) (SKOI_ZA_>) (SKOI_ZA_<=) (SKOI_ZA__<) (SKOI_ZA__>=) (SKOI_ZA__>) (SKOI_ZA__<=) (SKOI_ZA_M) (SKOI_ZA_NE_M) (SKOI_ZA_V) (SKOI_ZA_NE_V)

Prethodne funkcije dekodiraju uslov i njegovu ispunjenost, pa proveru ispunjenosti uslova opisuje funkcija USLOV_ISPUNJEN:
D0|D1|D2|D3|D4|D5|D6|D7|D8|D9|D10|D11|D12|D13

Slika 4.7.1 sadri pregled prekidakih funkcija prekidaa P2, P3 i P4. prekida P2 P3 P4 funkcija
R&~T&UR8 R&~T&UR9 R&~T&UR10

Slika 4.7.1 Upravljanje prekidaima P2, P3 i P4 Posebne argumente prekidaa P2, P3 i P4 uvaju biti 8, 9 i 10 upravljakog registra. Prekidai od P5 do P36 omoguuju pristup registrima opte namene. Poto na njihovo upravljanje utie redni broj registra, kao posebni argumenti ovih prekidaa se javljaju sadraji 8 najmanje znaajnih bita registra naredbe RNi (i = 7, 6, ..., 0). U ovim bitima u 4 znaajnije pozicije se nalazi kod prvog registra, a u 4 manje znaajne pozicije kod drugog registra operanda. Za izbor jednog od ova dva koda

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

92

potrebna su dva bita upravljakog registra (bit 11 omoguuje izbor koda prvog registra, a bit 12 omoguuje izbor koda drugog registra). Dekodiranje jednog od 16 registara opisuju funkcije REGISTARi (i = 0, ... , 15):
REGISTAR0: REGISTAR1: REGISTAR2: REGISTAR3: REGISTAR4: REGISTAR5: REGISTAR6: REGISTAR7: REGISTAR8: REGISTAR9: REGISTAR10: REGISTAR11: REGISTAR12: REGISTAR13: REGISTAR14: REGISTAR15: (~RN7&~RN6&~RN5&~RN4&UR11)|(~RN3&~RN2&~RN1&~RN0&UR12) (~RN7&~RN6&~RN5& RN4&UR11)|(~RN3&~RN2&~RN1& RN0&UR12) (~RN7&~RN6& RN5&~RN4&UR11)|(~RN3&~RN2& RN1&~RN0&UR12) (~RN7&~RN6& RN5& RN4&UR11)|(~RN3&~RN2& RN1& RN0&UR12) (~RN7& RN6&~RN5&~RN4&UR11)|(~RN3& RN2&~RN1&~RN0&UR12) (~RN7& RN6&~RN5& RN4&UR11)|(~RN3& RN2&~RN1& RN0&UR12) (~RN7& RN6& RN5&~RN4&UR11)|(~RN3& RN2& RN1&~RN0&UR12) (~RN7& RN6& RN5& RN4&UR11)|(~RN3& RN2& RN1& RN0&UR12) ( RN7&~RN6&~RN5&~RN4&UR11)|( RN3&~RN2&~RN1&~RN0&UR12) ( RN7&~RN6&~RN5& RN4&UR11)|( RN3&~RN2&~RN1& RN0&UR12) ( RN7&~RN6& RN5&~RN4&UR11)|( RN3&~RN2& RN1&~RN0&UR12) ( RN7&~RN6& RN5& RN4&UR11)|( RN3&~RN2& RN1& RN0&UR12) ( RN7& RN6&~RN5&~RN4&UR11)|( RN3& RN2&~RN1&~RN0&UR12) ( RN7& RN6&~RN5& RN4&UR11)|( RN3& RN2&~RN1& RN0&UR12) ( RN7& RN6& RN5&~RN4&UR11)|( RN3& RN2& RN1&~RN0&UR12) ( RN7& RN6& RN5& RN4&UR11)|( RN3& RN2& RN1& RN0&UR12)

Nakon dekodiranja registra, potrebno je odrediti da li se zatvara njegov ulazni ili izlazni prekida. To omoguuju dva bita upravljakog registra (bit 13 omoguuje izbor ulaznog prekidaa, a bit 14 omoguuje izbor izlaznog prekidaa). Slika 4.7.2 sadri pregled funkcija koje opisuju upravljanje ulaznim prekidaima registara opte namene. prekida P5 P7 P9 P11 P13 P15 P17 P19 P21 P23 P25 P27 P29 P31 P33 P35 funkcija
R&~T&REGISTAR0&UR13 R&~T&REGISTAR1&UR13 R&~T&REGISTAR2&UR13 R&~T&REGISTAR3&UR13 R&~T&REGISTAR4&UR13 R&~T&REGISTAR5&UR13 R&~T&REGISTAR6&UR13 R&~T&REGISTAR7&UR13 R&~T&REGISTAR8&UR13 R&~T&REGISTAR9&UR13 R&~T&REGISTAR10&UR13 R&~T&REGISTAR11&UR13 R&~T&REGISTAR12&UR13 R&~T&REGISTAR13&UR13 R&~T&REGISTAR14&UR13 R&~T&REGISTAR15&UR13

Slika 4.7.2 Upravljanje ulaznim prekidaima registara opte namene

93

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Slika 4.7.3 sadri pregled funkcija koje opisuju upravljanje izlaznim prekidaima registara opte namene. prekida P6 P8 P10 P12 P14 P16 P18 P20 P22 P24 P26 P28 P30 P32 P34 P36 funkcija
R&~T&REGISTAR0&UR14 R&~T&REGISTAR1&UR14 R&~T&REGISTAR2&UR14 R&~T&REGISTAR3&UR14 R&~T&REGISTAR4&UR14 R&~T&REGISTAR5&UR14 R&~T&REGISTAR6&UR14 R&~T&REGISTAR7&UR14 R&~T&REGISTAR8&UR14 R&~T&REGISTAR9&UR14 R&~T&REGISTAR10&UR14 R&~T&REGISTAR11&UR14 R&~T&REGISTAR12&UR14 R&~T&REGISTAR13&UR14 R&~T&REGISTAR14&UR14 R&~T&REGISTAR15&UR14

Slika 4.7.3 Upravljanje izlaznim prekidaima registara opte namene Slika 4.7.4 sadri pregled funkcija koje opisuju upravljanje prekidaima od P37 do P44. prekida P37 P38 P39 P40 P41 P42 P43 P44 funkcija
R&~T&UR15 R&~T&UR16 R&~T&UR17 R&~T&UR18 R&~T&UR19 R&~T&UR20 R&~T&UR21 R&~T&UR22

Slika 4.7.4 Upravljanje prekidaima od P37 do P44 Posebne argumente prekidaa P37, P38, P39, P40, P41, P42, P43 i P44 uvaju biti 15, 16, 17, 18, 19, 20, 21 i 22 upravljakog registra. Na upravljanje prekidaima od P45 do P52, koji omoguuju aktiviranje sklopova aritmetiko-logike jedinice, utiu kodovi izvravanih naredbi. Zato se

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

94

kao njihovi posebni argumenti javljaju sadraji najznaajnijih 8 bita registra naredbe RNi (i = 15, 14, ... , 8) sa kodom naredbe. Slika 4.7.5 sadri prikaz opisa funkcija za dekodiranje naredbi.
SABERI SABERI_P ODUZMI ODUZMI_P I ILI UPOREDI DODAJ_1 ODBIJ_1 NE LEVO DESNO ~RN15&~RN14&~RN13& RN12&~RN11&~RN10&~RN9&~RN8 ~RN15&~RN14&~RN13& RN12&~RN11&~RN10&~RN9& RN8 ~RN15&~RN14&~RN13& RN12&~RN11&~RN10& RN9&~RN8 ~RN15&~RN14&~RN13& RN12&~RN11&~RN10& RN9& RN8 ~RN15&~RN14&~RN13& RN12&~RN11& RN10&~RN9&~RN8 ~RN15&~RN14&~RN13& RN12&~RN11& RN10&~RN9& RN8 ~RN15&~RN14& RN13&~RN12&~RN11&~RN10&~RN9&~RN8 ~RN15&~RN14& RN13& RN12&~RN11&~RN10&~RN9&~RN8 ~RN15&~RN14& RN13& RN12&~RN11&~RN10&~RN9& RN8 ~RN15&~RN14& RN13& RN12&~RN11&~RN10& RN9&~RN8 ~RN15&~RN14& RN13& RN12&~RN11&~RN10& RN9& RN8 ~RN15&~RN14& RN13& RN12&~RN11& RN10&~RN9&~RN8

Slika 4.7.5 Funkcije koje opisuju dekodiranje naredbi Zatvaranje prekidaa od P46 do P52 omoguuje bit 23 upravljakog registra, a funkcije koje opisuju dekodiranje naredbi odreuju koji od prekidaa e tada biti zatvoren i koji sklop aktiviran. Prekida P45 omoguuje da u aritmetikim operacijama uestvuje bit prenosa P. Prekidai P52 zahtevaju dodatni poseban argument (bit 24 upravljakog registra), da bi se sklop za sabiranje mogao koristiti za uveanje programskog brojaa, kao i za sabiranje sastojaka adrese indeksnog operanda. Slika 4.7.6 sadri pregled funkcija koje opisuju upravljanje prekidaima od P45 do P52. prekida P45 P46 P47 P48 P49 P50 P51 P52 funkcija
R&~T&(SABERI_P|ODUZMI_P)&UR23 R&~T&DESNO&UR23 R&~T&LEVO&UR23 R&~T&NE&UR23 R&~T&ILI&UR23 R&~T&I&UR23 R&~T&(ODUZMI|ODUZMI_P|UPOREDI|ODBIJ_1)&UR23 R&~T&(((SABERI|SABERI_P|DODAJ_1) &UR23)|UR24)

Slika 4.7.6 Upravljanje prekidaima od P45 do P52 Sve prethodno navedene prekidake funkcije se implementiraju pomou kombinacionih kola, pa se njihova tanost istovremeno proverava i utie na stanje prekidaa u pojedinim poluciklusima.

95

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

4.8. MAINSKI OBLICI MIKRO-PROGRAMA


Sadraj inicijalnog registra je: 00000002 (ulazna adresa inicijalnog mikroprograma). Kada ovaj sadraj dospe u registar sekvence, on u poluciklusu dobavljanja izazove zatvaranje prekidaa P55 i punjenje jedine mikro-naredbe inicijalnog mikro-programa u upravljaki registar. Po njenom izvravanju, nastavlja se izvravanja mikro-programa dobavljanja (sa ulaznom adresom 00000012). Slika 4.8.1 sadri mainski oblik inicijalnog i mikro-programa dobavljanja (znaajnijih 18 bita mainskog oblika mikro-naredbe odreuje njeno obavljanje, a preostalih 7 bita odreuje dobavljanje sledee mikro-naredbe).
lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije binarna lokacije adresa 2 1 0 biti biti lokacije 432109876543210987 6543210 24 -> 7 6 -> 0 0000000 000001000000000001 0000001 P41,P1 P55 0000001 000001010000000010 0000010 P41,P39,P2 P55 0000010 001010000100000010 0000011 P44,P42,P37,P2 P55 0000011 100000000000000001 0001000 P52,P1 P54 0000100 000000000000000000 0000000 0000101 000000000000000000 0000000 0000110 000000000000000000 0000000 0000111 000000000000000000 0000000

Slika 4.8.1 Mainski oblik inicijalnog i mikro-programa dobavljanja. Slika 4.8.2 sadri mainski oblik mikro-programa obavljanja 1. tipa naredbi (Pir1 oznaava izlazni, a Pur1 ulazni prekida prvog registra, dok Pir2 oznaava izlazni prekida drugog registra,).
binarna adresa lokacije 0001000 0001001 0001010 0001011 0001100 0001101 0001110 0001111 lokacije mikro-programske memorije znaenje jedininih bita sadraja lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000010000010010000 0001001 P42,Pir1 P55 000100000010100000 0001010 P43,Pir2 P55 010000001001010000 0000001 P52/P51/P50/P49/P45,P38,Pur1 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 binarni sadraj lokacije

Slika 4.8.2 Mainski oblik mikro-programa obavljanja 1. tipa naredbi

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

96

Slika 4.8.3 sadri mainski oblik mikro-programa obavljanja 2. tipa naredbi (Pir1 oznaava izlazni prekida prvog, a Pir2 izlazni prekida drugog registra).
binarna adresa lokacije 0010000 0010001 0010010 0010011 0010100 0010101 0010110 0010111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000010000010010000 0010001 P42,Pir1 P55 000100000010100000 0010010 P43,Pir2 P55 010000001000000000 0000001 P51,P38 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.3 Mainski oblik mikro-programa obavljanja 2. tipa naredbi Slika 4.8.4 sadri mainski oblik mikro-programa obavljanja 3. tipa naredbi (Pir1 oznaava izlazni, a Pur1 oznaava ulazni prekida prvog registra).
binarna adresa lokacije 0011000 0011001 0011010 0011011 0011100 0011101 0011110 0011111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 001010000010010000 0011001 P44,P42,Pir1 P55 010000001001010000 0000001 P52/P51/P48/P47/P46,P38,Pur1 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.4 Mainski oblik mikro-programa obavljanja 3. tipa naredbi

97

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Slika 4.8.5 sadri mainski oblik mikro-programa obavljanja 4. tipa naredbi (Pir2 oznaava izlazni prekida drugog, a Pur1 ulazni prekida prvog registra).
binarna adresa lokacije 0100000 0100001 0100010 0100011 0100100 0100101 0100110 0100111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000000000010100100 0100001 Pir2,P3 P55 000000000101011000 0000001 P37,Pur1,P4 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.5 Mainski oblik mikro-programa obavljanja 4. tipa naredbi Slika 4.8.6 sadri mainski oblik mikro-programa obavljanja 5. tipa naredbi (Pur1 oznaava ulazni prekida prvog registra).
binarna adresa lokacije 0101000 0101001 0101010 0101011 0101100 0101101 0101110 0101111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000001000001010010 0101001 P41,Pur1,P2 P55 001010000100000010 0101010 P44,P42,P37,P2 P55 100000000000000001 0000001 P52,P1 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.6 Mainski oblik mikro-programa obavljanja 5. tipa naredbi

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

98

Slika 4.8.7 sadri mainski oblik mikro-programa obavljanja 6. tipa naredbi (Pur1 oznaava ulazni prekida prvog registra).
binarna adresa lokacije 0110000 0110001 0110010 0110011 0110100 0110101 0110110 0110111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000001000000000110 0110001 P41,P3,P2 P55 001010000100000010 0110010 P44,P42,P37,P2 P55 100000000000000001 0110011 P52,P1 P55 000001000001011000 0000001 P41,Pur1,P4 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.7 Mainski oblik mikro-programa obavljanja 6. tipa naredbi Slika 4.8.8 sadri mainski oblik mikro-programa obavljanja 7. tipa naredbi (Pir2 oznaava izlazni prekida drugog, a Pur1 ulazni prekida prvog registra).
binarna adresa lokacije 0111000 0111001 0111010 0111011 0111100 0111101 0111110 0111111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000000000010100100 0111001 Pir2,P3 P55 000001000001011000 0000001 P41,Pur1,P4 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.8 Mainski oblik mikro-programa obavljanja 7. tipa naredbi

99

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Slika 4.8.9 sadri mainski oblik mikro-programa obavljanja 8. tipa naredbi (Pir2 oznaava izlazni prekida drugog, a Pur1 ulazni prekida prvog registra).
binarna adresa lokacije 1000000 1000001 1000010 1000011 1000100 1000101 1000110 1000111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000001000000000110 1000001 P41,P3,P2 P55 001010000100000010 1000010 P44,P42,P37,P2 P55 100000000000000001 1000011 P52,P1 P55 000010000100001000 1000100 P42,P37,P4 P55 000100000010100000 1000101 P43,Pir2 P55 100000000000000100 1000110 P52,P3 P55 000001000001011000 0000001 P41,Pur1,P4 P55 000000000000000000 0000000

Slika 4.8.9 Mainski oblik mikro-programa obavljanja 8. tipa naredbi Slika 4.8.10 sadri mainski oblik mikro-programa obavljanja 9. tipa naredbi (Pir1 oznaava izlazni prekida prvog registra).
binarna adresa lokacije 1001000 1001001 1001010 1001011 1001100 1001101 1001110 1001111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000001000000000110 1001001 P41,P3,P2 P55 001010000100000010 1001010 P44,P42,P37,P2 P55 100000000000000001 1001011 P52,P1 P55 000000100010011000 0000001 P40,Pir1,P4 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.10 Mainski oblik mikro-programa obavljanja 9. tipa naredbi

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

100

Slika 4.8.11 sadri mainski oblik mikro-programa obavljanja 10. tipa naredbi (Pir1 oznaava izlazni prekida prvog, a Pir2 izlazni prekida drugog registra).
binarna adresa lokacije 1010000 1010001 1010010 1010011 1010100 1010101 1010110 1010111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000000000010010100 1010001 Pir1,P3 P55 000000100010101000 0000001 P40,Pir2,P4 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.11 Mainski oblik mikro-programa obavljanja 10. tipa naredbi Slika 4.8.12 sadri mainski oblik mikro-programa obavljanja 11. tipa naredbi (Pir1 oznaava izlazni prekida prvog, a Pir2 izlazni prekida drugog registra).
binarna adresa lokacije 1011000 1011001 1011010 1011011 1011100 1011101 1011110 1011111 lokacije mikro-programske memorije znaenje jedininih bita sadraja lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000001000000000110 1011001 P41,P3,P2 P55 001010000100000010 1011010 P44,P42,P37,P2 P55 100000000000000001 1011011 P52,P1 P55 000010000100001000 1011100 P42,P37,P4 P55 000100000010010000 1011101 P43,Pir1 P55 100000000000000100 1011110 P52,P3 P55 000010000010101000 0000001 P40,Pir2,P4 P55 000000000000000000 0000000 binarni sadraj lokacije

Slika 4.8.12 Mainski oblik mikro-programa obavljanja 10. tipa naredbi

101

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Slika 4.8.13 sadri mainski oblik mikro-programa obavljanja 12. tipa naredbi.
binarna adresa lokacije 1100000 1100001 1100010 1100011 1100100 1100101 1100110 1100111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000001000000000110 1100001 P41,P3,P2 P55 000000000100001001 0000001 P37,P4,P1 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.13 Mainski oblik mikro-programa obavljanja 12. tipa naredbi Slika 4.8.14 sadri mainski oblik mikro-programa obavljanja 13. tipa naredbi.
binarna adresa lokacije 1101000 1101001 1101010 1101011 1101100 1101101 1101110 1101111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000001000000000110 1101001 P41,P3,P2 P55 001010000100000010 1101010 P44,P42,P37,P2 P55 100000000000000001 1101011 P52,P1 P55 000000000100001001 0000001 P37,P4,P1 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.14 Mainski oblik mikro-programa obavljanja 13. tipa naredbi

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

102

Slika 4.8.15 sadri mainski oblik mikro-programa obavljanja 14. tipa naredbi (Pur1 oznaava ulazni prekida prvog registra).
binarna adresa lokacije 1110000 1110001 1110010 1110011 1110100 1110101 1110110 1110111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000001000000000110 1110001 P41,P3,P2 P55 001010000100000010 1110010 P44,P42,P37,P2 P55 100000000001010000 1110011 P52,Pur1(P35) P55 000000000100001001 0000001 P37,P4,P1 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.15 Mainski oblik mikro-programa obavljanja 14. tipa naredbi naredbi Slika 4.8.16 sadri mainski oblik mikro-programa obavljanja 15. tipa naredbi (Pir1 oznaava izlazni prekida prvog registra).
binarna adresa lokacije 1111000 1111001 1111010 1111011 1111100 1111101 1111110 1111111 lokacije mikro-programske memorije znaenje jedininih bita sadraja binarni sadraj lokacije lokacije 2 1 0 biti biti 432109876543210987 6543210 24 -> 7 6 -> 0 000000000010010001 0000001 Pir1(P36),P1 P55 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000 000000000000000000 0000000

Slika 4.8.16 Mainski oblik mikro-programa obavljanja 15. tipa naredbi

4.9. RAZMATRANJE RADA PROCESORA KONCEPT


Pre poetka rada procesora KONCEPT, sadraj inicijalnog registra se prebaci u registar sekvence, zahvaljujui zatvaranju prekidaa P53 (Slika 4.9.1).

103

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

R T priprema dobavljanja jedine mikro-naredbe inicijalnog mikro-programa dobavljanje jedine mikro-naredbe inicijalnog mikro-programa obavljanje jedine mikro-naredbe inicijalnog mikro-programa i priprema dobavljanja prve mikro-naredbe mikro-programa dobavljanja dobavljanje prve mikro-naredbe mikro-programa dobavljanja

...

Slika 4.9.1 Vremenski dijagram rada procesora KONCEPT Poetni sadraj registra sekvence dovodi do punjenja upravljakog registra sadrajem prve lokacije mikro-programske memorije (sa adresom 00000002). Na taj nain, u upravljaki registar dospe mainski oblik jedine mikro-naredbe inicijalnog mikro-programa, ije obavljanje dovodi do smetanja sadraja prve memorijske lokacije (sa adresom 000016) u programski broja. Nakon toga, u upravljaki registar se smesti sadraj druge lokacije mikro-programske memorije (sa adresom 00000012). Time se za obavljanje spremi prva mikro-naredba mikro-programa dobavljanja. Prvo izvravanje ovog mikro-programa dovodi do prebacivanja u registar naredbe sadraja memorijske lokacije iju adresu sadri programski broja. Neka ova memorijska lokacija sadri, na primer, obaveznu re naredbe:
PREBACI_NR %2,$1

ija mainska predstava zauzima dve uzastopne memorijske lokacije, jer obuhvata obaveznu i dodatnu re: 502x16 000116. Tada iza obavljanja poslednje mikro-naredbe mikro-programa dobavljanja sledi izvravanje mikro-programa obavljanja naredbi 5. tipa (sa ulaznom adresom 01010002), koje dovodi do smetanja konstante 1 iz dodatne rei u registar %2. Nakon izvravanja ovog mikro-programa, sledi opet obavljanje prve mikro-naredbe mikro-programa dobavljanja (sa adresom 00000012).

4.10. PITANJA
1. Koju adresu dekodira dekoderska funkcija A3&A2&A1&A0 (Ai oznaava i-ti bit adrese)? 2. Koje linije ulaze u memoriju? 3. Koje linije izlaze iz memorije? 4. Koje naredbe imaju jedan ulazno-izlazni i jedan ulazni registarski operand?

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

104

5. U kojim operandima naredbi procesora se koriste registri opte namene? 6. U kojim operandima naredbi procesora se koriste vrednost/adresa? 7. Da li naredba SABERI imad dodatnu re? 8. U kojoj fazi i u koji registar se smeta obavezna re? 9. U kojoj fazi i u koji registar se smeta dodatna re? 10. ta sadri procesor? 11. ta sadri aritmetiko logika jedinica? 12. Koje registre menja izvravanje mikro-programa obavljanja naredbe ODUZMI? 13. ta sadri upravljaka jedinica? 14. ta karakterie mikro-programsku memoriju? 15. Koji registri se menjaju u poluciklusu dobavljanja upravljake jedinice? 16. Koji registri se menjaju u poluciklusu obavljanja upravljake jedinice? 17. Kako dekoder naredbe transformie kod naredbe u adresu mikroprograma obavljanja? 18. Gde se koristi ulazna adresa mikro-programa dobavljanja? 19. Odakle dolazi adresa u mikro-programsku memoriju? 20. Koji su zajedniki argumenti prekidakih funkcija? 21. Kako se menja vrednost logikih promenljivih T i R? 22. Koji su posebni argumenti prekidakih funkcija? 23. ta sadri programski broja? 24. ta sadri registar sekvence? 25. ta sadri upravljaki registar? 26. ta sadri inicijalni registar? 27. ta se deava dok logika promenljive R ima vrednost 0? 28. U kom redosledu se izvravaju mikro-programi?

105

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

5. RAUNAR KONCEPT
5.1. ORGANIZACIJA RAUNARA KONCEPT
Slika 5.1.1 sadri prikaz raunara, sastavljenog od procesora i memorije.
adresne linije linije podataka P

PROCESOR

16 16

MEMORIJA

Slika 5.1.1 Organizacija raunara sastavljenog od procesora i memorije Raunar koji se sastoji samo od procesora i memorije je neupotrebljiv, jer nema naina da se izvana izmeni ili pregleda sadraj memorijskih lokacija, pa ni da se utie na rad raunara, a ni da se taj rad prati. Ovakav raunar postaje upotrebljiv, ako se obezbedi vanjski uticaj na nivoe signala u upravljakim linijama (P i ), kao i u adresnim linijama i u linijama podataka. Takoe, potrebno je i prikazati nivoe signala u linijama podataka, koji odraavaju binarne, odnosno logike vrednosti. Za vanjski uticaj na nivoe signala neophodni su mehaniki prekidai, a za prikazivanje nivoa signala potrebne su svetlosne diode (Slika 5.1.2).
adresne linije linije podataka P LED MEMORIJA

PROCESOR

16 16

S1 S2 S3 S4 16 16 1 16

1 1

...

Slika 5.1.2 Organizacija raunara KONCEPT Oznaka S1 se odnosi na 34 meusobno povezana mehanika prekidaa, koji imaju 2 poloaja i svi se uvek nalaze u istom poloaju. Zatvaranje ovih prekidaa

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

106

zaustavlja rad procesora i omoguuje uticanje na nivoe signala u upravljakim linijama (P i ), ali i u adresnim linijama i u linijama podataka. Otvaranjem ovih prekidaa zapoinje rad procesora. Oznaka S2 se odnosi na mehaniki prekida sa 3 poloaja (levo, neutralno, desno), koji omoguuje uticanje na nivoe signala u upravljakim linijama P i . Postavljanje ovog prekidaa u desni poloaj dovodi na nivo 1 signal u liniji P, a postavljanje ovog prekidaa u levi poloaj dovodi na nivo 1 signal u liniji . Oznaka S3 se odnosi na 16 meusobno nezavisnih mehanikih prekidaa, svaki sa po 2 poloaja, koji omoguuju uticanje na nivoe pojedinih signala u adresnim linijama. Zatvaranje svakog od ovih prekidaa dovodi na nivo 1 signal u korespondentnoj adresnoj liniji. Oznaka S4 se odnosi na 16 meusobno nezavisnih mehanikih prekidaa, svaki sa po 2 poloaja, koji omoguuju uticanje na nivoe pojedinih signala u linijama podataka. Zatvaranje svakog od ovih prekidaa dovodi na nivo 1 signal u korespondentnoj liniji podataka. Oznaka LED se odnosi na 16 meusobno nezavisnih svetlosnih dioda, koje omoguuju prikazivanje nivoa pojedinih signala u linijama podataka. Svaka od ovih svetlosnih dioda svetli samo ako je u njenoj liniji signal na nivou 1. Mehaniki prekidai i svetlosne diode se nalaze na upravljakoj tabli (Slika 5.1.3).
raunar ne radi S0 0 S315 0 S415 LED podataka L15 1 prekidai podataka 0 S41 1 raunar radi procesor ne radi (~R) S1 adresni prekidai 0 S31 1 0 S40 1 procesor radi (R) neutralno S2 0 S30 1 1 P

...

...

...

L1

L0

Slika 5.1.3 Upravljaka tabla raunara KONCEPT Upravljaka tabla sadri i prekida S0, sa 2 poloaja. Kada je u desnom poloaja, ovaj prekida omoguuje rad raunara, jer tada dovodi napajanje do

107

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

njegovih sklopova. Ako je ovaj prekida u suprotnom poloaju, tada raunar ne radi, jer su njegovi sklopovi bez napajanja. Za prekidae S3 i S4 se podrazumeva da dovode signal na nivo 1 kada su u desnom poloaju. Indeks uz oznake ovih prekidaa, kao i uz oznake svetlosnih dioda (L), pokazuje za koju od linija su vezane odgovarajui prekidai, odnosno svetlosne diode. Pisanje memorijske lokacije poinje dovoenjem prekidaa S2 u neutralni, a prekidaa S1 u levi poloaj. Zatim se prekidai S3 i S4 postave u poloaje odreene adresom ove memorijske lokacije i njenim novim sadrajem. Potom se, prekida S2 dovodi u desni poloaj, ime se izmeni sadraj date memorijske lokacije. itanje memorijske lokacije poinje dovoenjem prekidaa S2 u neutralni, a prekidaa S1 u levi poloaj. Zatim se prekidai S3 postave u poloaje odreene adresom ove memorijske lokacije. Potom se prekida S2 dovodi u levi poloaj. Dok je on u tom poloaju, svetlosne diode prikazuju bite date memorijske lokacije. Do izvravanja datog programa dolazi nakon prebacivanja prekidaa S1 u desni poloaj, ako se, prethodno, u prvu memorijsku lokaciju (sa adresom 000016) smesti ulazna adresa ovog programa. Kraj izvravanja programa se prepoznaje po pravilnoj izmeni stanja svetleih dioda, ako se na kraju programa nalazi beskonana petlja (jer se tada ponavlja izvravanje iste naredbe, pa se u linijama podataka ponavljaju iste kombinacije nivoa signala, odreene njenim mainskim oblikom).

5.2. ULAZNI I IZLAZNI UREAJI RAUNARA KONCEPT


Upravljaka tabla je nepregledna, pa je njeno korienje sporo i bremenito grekama. Zato je bolje binarnu komunikaciju korisnika i raunara, koju namee upravljaka tabla, zameniti znakovnom komunikacijom. To podrazumeva da se za saoptavanje komandi raunaru koriste nizovi znakova, umesto poloaja prekidaa. KOMANDNI JEZIK Znakovni oblik komandi za pisanje (P) memorijske lokacije, za itanje () memorijske lokacije i za pokretanje izvravanja (I) programa, opisuje pravilo komandnog jezika (command language), navedeno u EBNF notaciji:
komanda -> P razmak broj razmak broj | razmak broj |I razmak broj

Brojevi predstavljaju argumente komandi. Prvi od njih oznaava adresu memorijske lokacije, a drugi oznaava novi sadraj ove memorijske lokacije. TASTATURA Znakovna komunikacija korisnika i raunara zahteva posebne ulazne i izlazne ureaje. Ulazni ureaj ima oblik tastature, sa dirkama koje pripadaju pojedinim znakovima. Pritisak na dirku generie kod, dodeljen znaku kome dirka pripada. Radi jednostavnosti se moe smatrati da su kodovi pojedinih znakova smeteni u

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

108

lokacije posebne memorije tastature i da pritisak na dirku zatvara prekida koji omoguuje itanje koda znaka iz odgovarajue lokacije ove memorije (Slika 5.2.1).
kod znaka1 kod znaka2 dirka1 dirka2 memorija dirkan

memorija tastature

...

kod znakan

Slika 5.2.1 Princip rada tastature Sa stanovita procesora, zgodno je da generisani kod dospe u neku predodreenu memorijsku lokaciju, iz koje procesor moe da ita ovaj kod kao i svaki drugi podatak. Prema tome, sa strane procesora, ova lokacija se ne razlikuje od ostalih memorijskih lokacija. Ona se ipak razlikuje od obinih memorijskih lokacija, jer je direktno vezana za tastaturu, sa koje prima svoj sadraj. Zbog toga, ovakva lokacija ne pripada memoriji, nego posebnom sklopu, koji se naziva kontroler tastature, a iji je osnovni zadatak je da posreduje izmeu tastature i procesora. Pomenuta lokacija se naziva registar podataka (kontrolera) tastature. Podrazumeva se da registar podataka tastature uvek sadri kod znaka koji odgovara poslednje pritisnutoj dirki tastature. Da bi se spreilo da procesor viestruko preuzme kod istog znaka izmeu dva uzastopna pritiska dirki tastature, neophodno je oznaiti kada se u registru podataka tastature nalazi nepreuzet, a kada ve preuzet kod znaka. Radi toga se uvodi registar stanja (kontrolera) tastature, koji sa strane procesora lii na obinu memorijsku lokaciju, a iji biti odraavaju stanje kontrolera tastature i automatski se menjaju pri izmenama stanja ovog kontrolera. Nulti bit registra stanja tastature oznaava da li registar podataka tastature sadri preuzet ili nepreuzet kod znaka. Kada je kod znaka preuzet, ovaj bit sadri vrednost 0, a kada je kod znaka nepreuzet, ovaj bit sadri vrednost 1. Inicijalni sadraj ovoga bita je uvek vrednost 0. Pritisak bilo koje dirke tastature izaziva smetanje koda odgovarajueg znaka u registar podataka tastature, kao i smetanje vrednosti 1 u nulti bit registra stanja tastature. itanje registra podataka tastature izaziva smetanje vrednosti 0 u nulti bit registra stanja tastature. Nema smisla itati registar podataka tastature dok se u nultom bitu registra stanja tastature ne pojavi vrednost 1. Retko itanje registra podataka tastature, ree od pritiskanja dirki tastature, ima za posledicu gubljenje kodova znakova. U ovakvoj situaciji novi kod istiskuje zateeni iz registra podataka tastature, jer zauzima njegovo mesto, a u nulti bit registra stanja tastature se smeta vrednost 1. Sa stanovita procesora, ulazni ureaj u obliku tastature predstavljaju dva registra kontrolera tastature, koje ima smisla samo itati. Na ovaj nain, kontroler tastature sakriva od procesora detalje funkcionisanja tastature i nudi jednoobrazan nain pristupanja bilo kojoj tastaturi (Slika 5.2.2).

109

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

adresne linije linije podataka

16 16 8

registar podataka tastatura registar stanja

Slika 5.2.2 Organizacija kontrolera tastature Za kontroler tastature se podrazumeva da 8 bitni kod, generisan u tastaturi, odlazi u 8 najmanje znaajnih bita registra podataka tastature. EKRAN Izlazni ureaj ima oblik ekrana sa takama koje mogu biti osvetljene ili neosvetljene. Ove take su grupisane u (pravougaone) matrice, od kojih svaka obrazuje znakovnu poziciju za prikazivanje jednog znaka. Oblik znaka obrazuju osvetljene take znakovne pozicije, pri emu se iz koda znaka odreuje koje take su osvetljene. Radi jednostavnosti se moe smatrati da kodovi pojedinih znakova predstavljaju adrese lokacija posebne memorije ekrana. Podrazumeva se da broj bita svake od ovih lokacija odgovara broju taaka znakovne pozicije, a sadraj svakog bita odreuje osvetljenost korespondentne take znakovne pozicije (Slika 5.2.3).
prekida1 biti taaka matrice znaka1 izaziva prekida2 biti taaka matrice znaka2 izaziva

memorija ekrana

ekran prekidan biti taaka matrice znakan izaziva Slika 5.2.3 Princip rada ekrana (kod znakai izaziva zatvaranje prekidaai)

...

Znakovne pozicije ekrana iz iste horizontale obrazuju liniju ekrana. Znak se uvek prikazuje u znakovnoj poziciji koja sadri poseban znak, nazvan kursor (cursor). Novi znak smenjuje kursor, a kursor se pomera horizontalno u sledeu, prvu desnu znakovnu poziciju iste linije. Kada se popune sve pozicije date linije, kursor prelazi u prvu (krajnje levu) znakovnu poziciju naredne (donje) linije. Ako se kursor nalazi u poslednjoj (krajnje desnoj) znakovnoj poziciji poslednje linije, tada se sadraj svih linija pomera vertikalno na gore, tako to se znak iz svake znakovne pozicije pomera vertikalno u prvu gornju znakovnu poziciju. Opisano pomeranje sadraja svih linija na gore dovodi do istiskivanja sadraja prve linije (sa vrha) ekrana, radi oslobaanja prostora u poslednjoj liniji (sa dna) ekrana, da bi kursor preao u njenu prvu znakovnu poziciju.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

110

Upravljaki znakovi omoguuju izbor znakovne pozicije u kojoj se prikazuje znak, jer po ekranu pomeraju kursor u izabranu znakovnu poziciju. Na primer, upravljaki znak nova linija (line feed) pomera vertikalno kursor po ekranu u znakovnu poziciju ispod znakovne pozicije u kojoj je zateen kursor. To moe izazvati prethodno opisano pomeranje sadraja svih linija ekrana. Slino tome, upravljaki znak poetak linije (carriage return) pomera kursor u prvu znakovnu poziciju linije u kojoj se kursor nalazi. Sa stanovita procesora, zgodno je da se kod prikazivanog znaka smesti u neku predodreenu memorijsku lokaciju, iz koje se taj kod upuuje na ekran. Prema tome, sa strane procesora ova lokacija se ne razlikuje od ostalih memorijskih lokacija. Ona se ipak razlikuje od obinih memorijskih lokacija, jer je direktno vezana za ekran. Zato ovakva lokacija ne pripada memoriji, nego posebnom sklopu, koji se naziva kontroler ekrana. Njegov osnovni zadatak je da posreduje izmeu ekrana i procesora. Pomenuta lokacija se naziva registar podataka (kontrolera) ekrana. Podrazumeva se da registar podataka ekrana sadri kod znaka koji je poslednji upuen na prikazivanje. Da bi se spreilo da procesor upisuje u registar podataka ekrana kodove prikazivanih znakova bre nego to se njihovi oblici mogu prikazati, neophodno je oznaiti kada je prikazan znak iji kod je upisan u registar podataka ekrana. Radi toga se uvodi registar stanja (kontrolera) ekrana, koji sa strane procesora lii na obinu memorijsku lokaciju, a iji biti odraavaju stanje kontrolera ekrana i automatski se menjaju pri izmenama stanja ovog kontrolera. Nulti bit registra stanja ekrana oznaava da li je znak, iji kod je u registru podataka ekrana, prikazan ili ne. Kada je znak prikazan, ovaj bit sadri vrednost 1, a kada znak nije prikazan, ovaj bit sadri vrednost 0. Inicijalni sadraj ovoga bita je uvek vrednost 1. Upisivanje koda znaka (koji se prikazuje) u registar podataka ekrana izaziva smetanje vrednosti 0 u nulti bit registra stanja ekrana. Prikazivanje ovog znaka izaziva smetanje vrednosti 1 u nulti bit registra stanja ekrana. Nema smisla upisivati kod novog znaka u registar podataka ekrana, dok se u nultom bitu registra stanja ekrana ne pojavi vrednost 1. Suvie brzo pisanje kodova znakova u registar podataka ekrana, bre od prikazivanja znakova na ekranu, ima za posledicu gubljenje prikazivanih znakova. U ovakvoj situaciji novi kod istiskuje zateeni iz registra podataka ekrana, zauzimajui njegovo mesto, a u nulti bit registra stanja ekrana se smeta vrednost 0. Sa stanovita procesora, izlazni ureaj u obliku ekrana predstavljaju dva registra kontrolera ekrana. Na ovaj nain kontroler ekrana sakriva od procesora detalje funkcionisanja ekrana i nudi jednoobrazan nain pristupanja bilo kom ekranu (Slika 5.2.4).

111

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

adresne linije linije podataka P

16 16

registar podataka ekran registar stanja 8

Slika 5.2.4 Organizacija kontrolera ekrana Za kontroler ekrana se podrazumeva da se 8 bitni kod, koji ide ka ekranu, preuzima iz 8 najmanje znaajnih bita registra podataka ekrana. Funkcionisanje izlaznog ureaja, u obliku matrinog tampaa, se sutinski ne razlikuje od prethodno opisanog funkcionisanja ekrana. RAUNAR KONCEPT SA ZNAKOVNIM ULAZOM I IZLAZOM Slika 5.2.5 prikazuje upotrebljivu verziju raunara KONCEPT, sastavljenu od procesora, memorije, tastature i ekrana.
adresne linije linije podataka P

PROCESOR

16 16

MEMORIJA

TASTATURA (kontroler i ureaj) TERMINAL EKRAN (kontroler i ureaj)

Slika 5.2.5 Organizacija raunara KONCEPT sa znakovnim ulazom i izlazom

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

112

Sa stanovita procesora, registri podataka i registri stanja kontrolera se ne razlikuju od obinih memorijskih lokacija. Oni zamenjuju obine memorijske lokacije kojima, po pravilu, odgovaraju najvie adrese. STANDARDNI ZNAKOVNI KODOVI Kodiranje znakova reguliu meunarodni dogovori ili standardi, kao to je ASCII (American Standard Code for Information Interchange).
Kod 000 001 002 003 004 005 006 007 008 009 00A 00B 00C 00D 00E 00F 010 011 012 013 014 015 016 017 018 019 01A 01B 01C 01D 01E Znak NUL (Null character) SOH (Start of Header) STX (Start of Text) ETX (End of Text) EOT (End of Transmission) ENQ (Enquiry) ACK (Acknowledgment) BEL (Bell) BS (Backspace) HT (Horizontal Tab) LF (Line Feed) VT (Vertical Tab) FF (Form Feed) CR (Carriage Return) SO (Shift Out) SI (Shift In) DLE (Data Link Escape) DC1 (XON/Device Control 1) DC2 (Device Control 2) DC3 (XOFF/Device Control 3) DC4 (Device Control 4) NAK (Negative Ack) SYN (Synchronous Idle) ETB (End of Trans. Block) CAN (Cancel) EM (End of Medium) SUB (Substitute) ESC (Escape) FS (File Separator) GS (Group Separator) RS (Record Separator) Kod 020 021 022 023 024 025 026 027 028 029 02A 02B 02C 02D 02E 02F 030 031 032 033 034 035 036 037 038 039 03A 03B 03C 03D 03E 03F Znak SP (Space) ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? Kod 040 041 042 043 044 045 046 047 048 049 04A 04B 04C 04D 04E 04F 050 051 052 053 054 055 056 057 058 059 05A 05B 05C 05D 05E 05F Zna k @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ Ko d 060 061 062 063 064 065 066 067 068 069 06A 06B 06C 06D 06E 06F 070 071 072 073 074 075 076 077 078 079 07A 07B 07C 07D 07E 07F Znak ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL
(Delete)

01F US (Unit Separator)

Slika 5.2.6 Sedmobitna ASCII tabela (kodovi su dati heksadecimalno) U sedmobitnoj verziji ASCII standarda (Slika 5.2.6), znakovi nacionalnih alfabeta zamenjuju pojedine od znakova ASCII standarda ( : [, : ], : ^, : @,

113

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

: \, : {, : }, : ~, : , : |). Osmobitna verzija ASCII standarda koristi dodatnih 128 znakova za reprezentovanje znakova nacionalnih alfabeta. Poto takvih znakova ima mnogo vie od 128, uvedene su kodne strane (code page) za grupe pojedinih nacionalnih alfabeta. Svaka kodna strana sadri 256 znakova, a da bi se kodovi znakova interpretirali u skladu sa kodnom stranom, neophodno je za tekst vezati podatak o vaeoj kodnoj strani. Meutim, ni ovaj pristup ne nudi zadovoljavajue reenje (naroito ne za jezike poput kineskog). Zato je predloen UNICODE standard, koji uvodi esnaestobitne kodove za pojedine znakove. Prvih 256 kodova odgovara ASCII kodovima za kodnu stranicu Latin-1, a ostali kodovi su podeljeni u zone koje su dodeljene pojedinim nacionalnim alfabetima. ZNAKOVNA I INTERNA PREDSTAVA CELIH BROJEVA Zahvaljujui postojanju znakovnih kodova za cifre, brojevi se mogu smetati u lokacije u internom (binarnom), ali i u znakovnom obliku. Tako, binarni broj: 100000012 moe biti smeten u jednu 8 bitnu lokaciju, ali i u 8 ovakvih lokacija: 3116 3016 3016 3016 3016 3016 3016 3116 U prethodnom primeru svaka binarna cifra je predstavljena svojim znakovnim kodom, pa zauzima jednu 8 bitnu lokaciju. Brojevi se preuzimaju sa ulaznog ureaja (tastature) u znakovnom obliku i neophodno je da budu u istom obliku radi prikaza na izlaznom ureaju (ekranu). Meutim, aritmetike operacije zahtevaju da brojevi budu i internom obliku. Zato je neophodna konverzija brojeva iz znakovnog u interni oblik, ali i obrnuto. Konverzija broja iz znakovnog u interni oblik zahteva (1) da se iz znakovnog koda svake cifre odredi njena interna predstava i (2) da se interna predstava cifre smesti u odgovarajuu poziciju. To se postie (1) oduzimanjem znakovnog koda cifre nula od znakovnog koda posmatrane cifre datog broja i (2) mnoenjem tako dobijene razlike odgovarajuim stepenom broja 2 (baze brojnog sistema). Postupak se ponavlja za znakovne kodove svih cifara datog broja idui sa leva u desno. Konverzija broja iz internog u znakovni oblik zahteva (1) da se za internu predstavu svake cifre odredi njen znakovni kod i (2) da se znakovni kodovi poreaju u odgovarajuem redosledu. To se postie (1) dodavanjem znakovnog koda cifre nula na vrednost svake cifre iz interne predstave broja i (2) i smetanjem dobijenog znakovnog koda cifre u odgovarajuu lokaciju. ZNAKOVNA INTERAKCIJA KORISNIKA I RAUNARA Komandu, koja se sastoji od niza znakova, korisnik saoptava raunaru pomou tastature. Pritiskom na odgovarajuu dirku tastature korisnik unosi, s leva u

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

114

desno, jedan po jedan znak komande. Uneseni znakovi se prikazuju na ekranu, da bi korisnik mogao da uoi eventualno pogreno unesen znak. Pogreno uneseni znakovi se ponitavaju jedan po jedan, s desna u levo. Znai, prvi se ponitava poslednje unesen znak. Ponitavanju znakova je posveena posebna dirka tastature (delete). Pritisak na dirku za ponitavanje generie kod odgovarajueg upravljakog znaka ponitavanja (Backspace). Prikaz unesenih znakova na ekranu se naziva eho, a unos znakova i ispravljanje pogreno unesenih znakova se naziva editiranje. Zbog eha i editiranja, korisnik doivljava tastaturu i ekran kao jedinstven ureaj, koji se naziva terminal. Oblik neposredne komunikacije korisnika i raunara, koji se javlja u editiranju, se naziva interaktivni rad. Nakon ispravnog unosa svih znakova komande, sledi prepoznavanje vrste komande i izdvajanje njenih argumenata. Zatim dolazi ili do izmene sadraja navedene memorijske lokacije (u sluaju komande P), ili do prikazivanja na ekranu, u heksadecimalnom obliku, sadraja navedene memorijske lokacije (u sluaju komande ), ili do pokretanja izvravanja korisnikog programa (u sluaju komande I). Prepoznavanje vrste komande, izdvajanje njenih argumenata i njeno izvravanje se zajedno nazivaju interpretiranje komande. Interpretiranje komande nastupa tek nakon njenog saoptavanja, znai, nakon unosa svih njenih znakova, odnosno, po zavretku editiranja. Za oznaavanje kraja saoptavanja komande slui posebna dirka tastature (enter). Pritisak na ovu dirku (za kraj unosa) generie kod odgovarajueg upravljakog znaka kraja unosa (Line Feed ili Carriage Return). Interpretiranje komandi je u nadlenosti posebnog programa, koji se naziva interpreter komandi. Pre preuzimanja komande, interpreter komandi na ekranu prikazuje poseban znak prompt, kojim saoptava korisniku da je spreman za preuzimanje komande:
for(;;) { prevedi interpreter u stanje sa grekom; prikai prompt i preuzmi komandu; if (prvi znak komande je P) if (sledi heksadecimalni broj) if (sledi heksadecimalni broj) { prevedi interpreter u stanje bez greke; izmeni sadraj navedene memorijske lokacije; }; else if (prvi znak komande je ) if (sledi heksadecimalni broj) { prevedi interpreter u stanje bez greke; prikai sadraj navedene memorijske lokacije; }; else if (prvi znak komande je I) if (sledi heksadecimalni broj) { prevedi interpreter u stanje bez greke; pokreni izvravanje korisnikog programa; if (interpreter je u stanju sa grekom) { prikai poruku greke; };

115
};

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

U toku prepoznavanja komandi, interpreter komandi sistematski ispituje sve dozvoljene mogunosti (predviene komandnim jezikom), a izvravanju komande pristupa im prepozna ispravnu komandu i izdvoji njene argumente. Pri izdvajanju, argumenti (brojevi) se prevode iz znakovnog u interni oblik. Obrnuto se deava kod prikazivanja (u znakovnom obliku) sadraja memorijskih lokacija. Za pokretanje izvravanja programa (komanda I) najbolje je da korisniki program bude u obliku potprograma, ije izvravanje se pokree naredbom POZOVI, a zavrava naredbom NATRAG. Na taj nain se, po izvravanju korisnikog programa, automatski nastavlja izvravanje interpretera komandi. Opisani interpreter komandi podrazumeva da se korisniki programi unose u mainskom obliku. Preuzimanje znakova (koji obrazuju komande), odnosno prikazivanje znakova (koji predstavljaju sadraj memorijske lokacije) nalazi se u nadlenosti posebnog programa koji se naziva drajver (driver) terminala. On se sastoji od 2 potprograma koji podravaju 2 operacije. Prva, ulazna operacija je namenjena za preuzimanje znakova sa terminala (sa tastature), a druga, izlazna operacija je namenjena za prikaz znakova na terminalu (na ekranu). Ove dve operacije omoguuju korienje terminala bez poznavanja detalja njegovog funkcionisanja. Na taj nain, one objedinjuju tastaturu i ekran u jedinstven ureaj. U ulaznoj operaciji se obavljaju preuzimanje, eho i editiranje preuzetih znakova. Preuzeti znakovi se odlau u ulaznu memorijsku zonu koja se naziva ulazni bafer. Ulazni bafer pripada programu kao to je interpreter komandi, iz koga je ulazna operacija pozvana. Poziv ulazne operacije sadri, kao argumente, adresu poetka i duinu ulaznog bafera. Opisana ulazna operacija omoguuje preuzimanje samo znakova koji pristignu sa tastature nakon njenog poziva. Preuzimanje jednog znaka u okviru ulazne operacije opisuje sledea asemblerska sekvenca:
ekaj_tastaturu: PREBACI_NR PREBACI_DR UPOREDI SKOI_ZA_== PREBACI_DR %0,$0 %1,registar_stanja_tastature %0,%1 ekaj_tastaturu %2,registar_podataka_tastature

Podrazumeva se da je registar_stanja_tastature labela registra stanja tastature, da je registar_podataka_tastature labela registra podataka tastature, da su registri %0 i %1 radni registri, kao i da je preuzeti znak (njegov kod) smeten u registar %2. Eho preuzetog znaka u okviru ulazne operacije opisuje sledea asemblerska sekvenca:
ekaj_ekran: PREBACI_NR PREBACI_DR UPOREDI SKOI_ZA_== %0,$0 %1,registar_stanja_ ekrana %0,%1 ekaj_ekran

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


PREBACI_RD registar_podataka_ekrana,%2

116

Podrazumeva se da je

registar_podataka_ekrana

labela registra stanja ekrana, da je labela registra podataka ekrana, da su registri %0 i %1 radni registri, kao i da se znak (njegov kod), iji eho se vri, nalazi u registru %2. U obe prethodno navedene asemblerske sekvence ulazne operacije prisutno je radno ekanje (busy waiting, polling). Ono se sastoji od ponavljanja provere da li je ispunjen uslov, neophodan za preuzimanje, odnosno za eho znaka. Ovakva provera se ponavlja do ispunjenja pomenutog uslova. Izvravanje prethodno navedenih asemblerskih sekvenci se ponavlja dok se ne preuzme ili zadani broj znakova, koji odgovara duini ulaznog bafera, ili upravljaki znak kraja unosa. Preuzimanje upravljakog znaka ponitavanja izaziva, ne samo izbacivanje poslednjeg znaka iz ulaznog bafera, nego i izbacivanje tog znaka sa ekrana. To zahteva vraanje kursora u znakovnu poziciju koja prethodi njegovoj zateenoj znakovnoj poziciji i smetanje razmaka u novu znakovnu poziciju kursora, radi ponitavanja u njoj zateenog znaka. U izlaznoj operaciji se obavlja samo prikaz znakova. On se ne razlikuje od eha znakova. Prikaz znakova se ponavlja, dok se ne prikae i poslednji od znakova iz izlazne memorijske zone koja se naziva izlazni bafer. Izlazni bafer pripada programu kao to je interpreter komandi, iz koga je izlazna operacija pozvana. Poziv izlazne operacije sadri, kao argumente, adresu poetka i duinu izlaznog bafera, koja odreuje broj prikazivanih znakova.
registar_stanja_ekrana

BIOS Iz prethodno izloenog proizlazi da su drajver terminala i interpreter komandi ravnopravni delovi raunara KONCEPT kao i procesor, memorija ili terminal. Drajver terminala i interpreter komandi se zajedno nazivaju BIOS (Basic Input Output System). BIOS predstavlja programski deo raunara. On se prikazuje u obliku hijerarhije slojeva, u kojoj se u viem sloju nalazi interpreter komandi, a u niem sloju drajver terminala (Slika 5.2.7). interpreter komandi drajver terminala Slika 5.2.7 Slojevita struktura BIOS-a U okviru BIOS-a interpreter komandi se nalazi iznad drajvera terminala, jer se oslanja na ovaj drajver tako to poziva njegovu ulaznu operaciju radi preuzimanja znakova komandi i tako to poziva njegovu izlaznu operaciju radi prikaza rezultata izvravanja komandi. Ispod BIOS-a se nalaze preostali delovi raunara, na koje se BIOS oslanja. Iznad BIOS-a su korisniki programi koji se oslanjaju na BIOS, jer pozivaju operacije drajvera terminala.

117

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Prethodno opisana organizacija BIOS-a podrazumeva dva nivoa njegovog korienja: (1) interaktivni nivo i (2) programski nivo. Na interaktivnom nivou korisnici direktno koriste komande interpretera komandi, a na programskom nivou se, iz korisnikih programa, pozivaju operacije drajvera terminala. Verzija raunara KONCEPT, koju obrazuju procesor, memorija, terminal i BIOS, sadri upravljaku tablu na kojoj su samo dva prekidaa. Prvi od njih je prekida napajanja. On ima 2 stabilna poloaja. Kada je prekida napajanja u jednom poloaju, raunar radi (njegovi sklopovi imaju napajanje), a kada se on nalazi u drugom poloaju, raunar ne radi (njegovi sklopovi nemaju napajanje). Drugi prekida omoguuje korisniku da pokrene rad procesora iz poetka (reset). On ima jedan stabilan poloaj (u kome logika promenljiva R ima vrednost 1) i jedan nestabilan poloaj (u kome logika promenljiva R ima vrednost 0). Dovoenje ovog prekidaa u nestabilan poloaj uzrokuje da procesor zapone rad iz poetka, ime se procesor dovodi u poznato stanje. Na ovaj nain se, na primer, ponovo aktivira BIOS, kada korisniki program upadne u beskonanu petlju. Aktiviranje BIOS-a znai da se pokrene izvravanje njegovog interpretera komandi, koji, posredstvom drajvera terminala, stupa u interakciju sa korisnikom. Za automatsko aktiviranje BIOS-a neophodno je da prva memorijska lokacija (sa adresom 000016) sadri ulaznu adresu BIOS-a. Takoe, neophodno je da su sadraj prve memorijske lokacije i sadraji memorijskih lokacija sa naredbama BIOS-a nepromenljivi, odnosno da se sadraji ovih lokacija mogu samo itati.

5.3. VRSTE MEMORIJE


Za smetanje naredbi BIOS-a nisu zgodne obine memorijske lokacije, poto njihov sadraj moe biti izmenjen, a nehotine izmene njihovog sadraja mogu ugroziti funkcionalnost BIOS-a, a to znai i upotrebljivost raunara KONCEPT. Za reavanje problema smetanja naredbi BIOS-a nije dovoljno poznavati samo organizaciju memorije, nego i njena tehnoloka svojstva. Po tehnologiji izrade, memorije se razvrstavaju na poluprovodnike i magnetne. Poluprovodnike memorije se dele na RAM (random access memory) i ROM (read only memory). Prve dozvoljavaju i pisanje i itanje svojih lokacija, pa su podesne za memoriju raunara. One nisu postojane, jer gube sadraj pri nestanku napajanja. Druge dozvoljavaju samo itanje svojih lokacija. One su zato podesne za nultu memorijsku lokaciju (sa adresom 000016), kao i za memorijske lokacije, predviene za smetanje naredbi BIOS-a. One su postojane, jer njihov sadraj, koji je upisan posebnim postupkom, nije zavisan od napajanja. Magnetnih memorija ima vie vrsta, a njihov tipian predstavnik je disk (Slika 5.3.1).

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

118

Slika 5.3.1 Principijelni izgled magnetnog diska Na magnetnom disku memorisani sadraji se nalaze u obliku magnetnih zapisa, rasporeenih u koncentrinim krunim stazama (track) koje glava (za itanje i pisanje) diska opisuje na magnetnom premazu rotirajuih ploa diska. I glava diska je pokretna, s tim da se ona pomera radijalno, znai ili od centra ili ka centru rotacije ploa diska. Staze diska su podeljene u sektore (sector) iste veliine. Radi razlikovanja staza i sektora, svakoj stazi, a i svakom sektoru na njoj, se pridruuje jednoznaan broj. Jedinica itanja i pisanja diska je blok, koji obuhvata sve bajte jednog ili eventualno vie sektora. Za itanje, odnosno za pisanje bloka diska, neophodno je pozicionirati glavu diska iznad odgovarajue staze i iznad odgovarajueg sektora na ovoj stazi. Disk sadri pomonu memoriju (u RAM izvedbi), veliku bar 1 blok, u koju se smeta sadraj pri itanju bloka iz sektora, odnosno iz koje se preuzima sadraj pri pisanju bloka u sektor. Poto dozvoljava i itanje i pisanje blokova, i disk je podesan za memoriju raunara. Disk je, kao i sve magnetne memorije, postojan, jer njegov sadraj ne zavisi od napajanja. Iako i poluprovodnike memorije (u RAM izvedbi) i diskovi poseduju svojstva potrebna za memoriju raunara, ipak ni jedna od ove dve vrste memorije nije idealno prilagoena pomenutoj nameni. Mana poluprovodnikih memorija (u RAM izvedbi) je njihova nepostojanost i mali kapacitet. Za razliku od diska, cena bita ove vrste memorija je previsoka za masovnu upotrebu. S druge strane, mana diska je njegova brzina. Za razliku od poluprovodnikih memorija, disk je, zbog svojih pokretnih delova, mnogo sporiji od procesora. Zato poluprovodnike memorije slue za privremeno smetanje sadraja koji su potrebni za rad procesora, a diskovi slue za trajno odlaganje sadraja. Prema tome, memorija se sastoji od

119

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

radne (poluprovodnike) memorije, ija brzina je priblina brzini procesora, a iji kapacitet je mali, i masovne (magnetne) memorije, koja je znatno sporija od procesora, ali je postojana i ima veliki kapacitet. Sadraji, trajno pohranjeni u masovnoj memoriji, se prebacuju u radnu memoriju samo kada su potrebni za rad procesora. Do prebacivanja u suprotnom smeru dolazi samo radi trajnog pohranjivanja sadraja. Jedinica prenosa sadraja izmeu radne i masovne memorije je blok. Prenos bloka na ovoj relaciji nije mogu bez komunikacije izmeu procesora i diska, u toku koje procesor saoptava disku brojeve staze i sektora, a disk, kao sporiji ureaj, diktira dinamiku prenosa. Komunikacija procesora i diska se sutinski ne razlikuje od komunikacije procesora i tastature (ekrana), pa je prirodno da se osloni na posredovanje kontrolera diska. Pri tome, registar podataka (kontrolera) diska omoguuje, ne samo prenos bajta bloka u oba smera, nego i prenos broja staze i broja sektora od procesora ka disku. Nulti bit registra stanja (kontrolera) diska pokazuje kada je komunikacija mogua, a prvi i drugi bit ovog registra slue za oznaavanje smera prenosa bloka. Kada nulti bit registra stanja diska sadri vrednost 1, tada procesor moe preuzeti ili izmeniti sadraj registra podataka diska. Registar podataka diska nije spreman za novi prenos sve dok ovaj bit sadri vrednost 0. Pristupanje procesora registru podataka diska dovodi do smetanja vrednosti 0 u nulti bit registra stanja diska. Sadraj ovoga bita postane jednak vrednosti 1, im registar podataka diska postane spreman za novi prenos. Inicijalni sadraj nultoga bita registra stanja diska je vrednost 1. Kada prvi bit registra stanja diska sadri vrednost 1, tada se blok prenosi na disk, a kada drugi bit registra stanja diska sadri vrednost 1, tada se blok prenosi sa diska. Procesor smeta vrednost 1 u jedan od ova dva bita, zavisno od smera prenosa bloka. Pri tome, on pie u registar stanja diska ne menjajui sadraj nultog bita ovog registra. Smetanje vrednosti 1 u prvi ili drugi bit registra stanja diska oznaava poetak prenosa bloka. Postavljeni bit se automatski anulira na kraju prenosa bloka, kada se prenese njegov poslednji bajt. Slika 5.3.2 sadri prikaz organizacije kontrolera diska.
adresne linije linije podataka P registar podataka 8 16 8 registar stanja disk

16

Slika 5.3.2 Organizacija kontrolera diska U prenosu bajta izmeu diska i registra podataka diska uestvuje samo 8 najmanje znaajnih bita ovog registra. Stanje prekidaa na liniji, koja ide od registra

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

120

podataka diska do diska, zavisi od sadraja prvog bita registra stanja diska, a stanje prekidaa na liniji, koja ide od diska do registra podataka diska, zavisi od sadraja drugog bita registra stanja diska. Prenos bloka zapoinje procesor, smetanjem oznake smera prenosa u registar stanja diska. Zatim sledi radno ekanje, dok registar podataka diska ne postane spreman za prijem broja staze. Nakon smetanja broja staze u registar podataka diska sledi radno ekanje, dok ovaj registar ne postane raspoloiv za prijem broja sektora. Po smetanju broja sektora u registar podataka diska, za svaki bajt prenoenog bloka se ponavlja radno ekanje, dok pomenuti bajt ne doe sa diska u registar podataka diska, odnosno dok on ne ode iz registra podataka diska na disk, to zavisi od smera prenosa. Prethodno opisani postupak korienja diska je sakriven u drajveru diska, koji brine da pristup registrima kontrolera diska bude u skladu sa pravilima njihove upotrebe. Pored toga, drajver diska pojednostavljuje korienje diska, jer dozvoljava da se, umesto brojeva staze i sektora, upotrebljavaju samo redni brojevi blokova koji se prenose na disk i sa diska. Jasno, zadatak drajvera diska je da redni broj bloka pretvori u broj staze i broj sektora. Drajver diska sadri 2 potprograma. Jedan od njih podrava ulaznu operaciju, namenjenu za itanje sadraja bloka, a drugi podrava izlaznu operaciju namenjenu za pisanje sadraja bloka. Uz poziv ulazne operacije kao argumenti se navode adresa ulaznog bafera i redni broj bloka, iji sadraj se prebacuje u ulazni bafer, a uz poziv izlazne operacije se navode adresa izlaznog bafera i redni broj bloka, u koji se prebacuje sadraj izlaznog bafera. Podrazumeva se da baferi pripadaju programu iz koga se dotina operacija poziva. Za prenos bloka na disk i sa diska su potrebne posebne komande komandnog jezika. Radi ovih komandi se proiruje pravilo koje opisuje komandni jezik u EBNF notaciji:
komanda -> P | |I |N |S razmak razmak razmak razmak razmak broj razmak broj broj broj broj razmak broj broj razmak broj

Komanda N omoguuje prenos bloka na disk tako to poziva izlaznu operaciju drajvera diska. Komanda S omoguuje prenos bloka sa diska tako to poziva ulaznu operaciju drajvera diska. Obe komande imaju dva argumenta u obliku brojeva. Prvi od njih odgovara adresi bafera, a drugi rednom broju bloka koji uestvuje u prenosu. Za komandu N u adresiranom baferu mora biti pripremljen sadraj (na primer, mainski oblik programa) koji se prenosi na disk i koji kasnije moe biti vraen u radnu memoriju.

121

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Uvoenje prethodne dve komande zahteva proirenje interpretera komandi. Prema tome, u gornjem sloju BIOS-a se nalazi proireni interpreter komandi, a u donjem sloju su drajver terminala i drajver diska (Slika 5.3.3). proireni interpreter komandi drajver terminala drajver diska Slika 5.3.3 Slojevita struktura proirenog BIOS-a Nova verzija raunara KONCEPT sadri procesor, radnu memoriju, terminal, masovnu memoriju i BIOS (Slika 5.3.4).
adresne linije linije podataka P

PROCESOR

16 16

RADNA MEMORIJA

TERMINAL

MASOVNA MEMORIJA (DISK)

Slika 5.3.4 Organizacija raunara KONCEPT sa radnom i masovnom memorijom Slika 5.3.4 sadri kvadrate sa natpisima TERMINAL i MASOVNA MEMORIJA koji oznaavaju i kontrolere i odgovarajue fizike ureaje. Radna memorija ima manje lokacija od broja koji doputa adresni prostor raunara KONCEPT, zbog visoke cene radne memorije. Najvei deo lokacija radne memorije je u RAM izvedbi, a samo mali deo ima ROM izvedbu, radi BIOS-a.

5.4. KODOVI ZA OTKRIVANJE I POPRAVKU GREAKA


Nesavrena izvedba memorije moe uzrokovati nepredvidive izmene pojedinih bita i tako izazvati greke u binarnim (internim) predstavama celih

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

122

brojeva sadranim u memoriji. Zato, ispravno rukovanje podacima iz memorije zahteva otkrivanje i popravku greaka (error detection and correction) u njihovim bitima. Otkrivanje pogrenih bita se zasniva na uvoenju bita provere (check bit) koji zajedno sa bitima podataka obrazuje kodnu re (codeword). Da bi biti podataka i bit provere obrazovali kodnu re, neophodno je da oni zadovoljavaju zadano pravilo. Vaenje takvog pravila naruava pojava pogrenih bita. Znai, otkrivanje pogrenih bita se zasniva na proveri da li za bite podataka i bit provere vai zadano pravilo. Za otkrivanje pogrenih bita obino se uvodi bit (provere) parnosti (parity bit) koji se postavlja tako da kodna re sadri paran broj jedinica. U tabeli (Slika 5.4.1) su prikazane sve mogue kodne rei sa dva bita podataka i jednim bitom parnosti. kodne rei biti podataka bit parnosti 00 0 01 1 10 1 11 0 Slika 5.4.1 Sve kodne rei sa tri bita Izmena bilo kog bita u bilo kojoj kodnoj rei iz tabele (Slika 5.4.1) daje tri bita koji ne predstavljaju kodnu re, jer ne sadre paran broj jedinica. Ali, izmene bilo koja dva bita u bilo kojoj kodnoj rei iz tabele (Slika 5.4.1) daju opet kodnu re. Ako se uoi da se sve kodne rei iz tabele (Slika 5.4.1) meusobno razlikuju u dva bita, tada sledi zakljuak da je broj pogrenih bita koji se mogu otkriti pomou ovakvih kodnih rei za jedan manji od broja bita po kojima se ovakve kodne rei razlikuju. Broj razliitih bita izmeu bilo koje dve kodne rei se naziva Hamingova udaljenost (Hamming distance). Znai, ako je Hamingova udaljenost kodnih rei n+1, tada je mogue otkriti do n pogrenih bita. Drukije reeno, tek izmena n+1 bita prevodi jednu kodnu re u drugu i ini izmene nevidljivim. Prisustvo vie bita parnosti u istoj kodnoj rei omoguuje otkrivanje izmenjenih (pogrenih) bita, ali i njihovu popravku. Pretpostavka je da se svaki od bita parnosti odnosi na poseban podskup bita podataka. Podrazumeva se da su podskupovi bita podataka tako odabrani da izmena nekog od bita podataka remeti vie bita parnosti. Iz toga se zakljuuje koji bit podataka je izmenjen, pa se on i popravlja. U tabeli (Slika 5.4.2) su prikazani podskupovi bita podataka i njihovi biti parnosti za kodnu re sa etiri bita bita podataka i tri bita parnosti. Ovakve kodne rei omoguuju popravku jednog pogrenog bita.

123

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

biti parnosti biti podataka podskup 1. bita parnosti podskup 2. bita parnosti podskup 3. bita parnosti primer kodne rei

redni brojevi bita kodne rei 2 4 3 5 6 7 + + + + + + + + + 0 1 1 0 0 1 1 1

Slika 5.4.2 Ustrojstvo kodne rei sa etiri bita podataka i tri bita parnosti Iz tabele (Slika 5.4.2) sledi: 1. ako je netaan samo jedan od bita parnosti, tada je on pogrean 2. ako su netani biti parnosti 1 i 2, tada je pogrean bit podataka 3 3. ako su netani biti parnosti 1 i 4, tada je pogrean bit podataka 5 4. ako su netani biti parnosti 2 i 4, tada je pogrean bit podataka 6, a 5. ako su netani biti parnosti 1,2 i 4, tada je pogrean bit podataka 7 Treba zapaziti da su biti kodne rei iz tabele (Slika 5.4.2) tako numerisani da suma rednih brojeva pogrenih bita parnosti daje redni broj pogrenog bita podataka. Podrazumeva se da redni brojevi bita parnosti odgovaraju stepenima broja 2: 20 (1), 21 (2), 22 (4) i tako dalje. Biti podataka se rasporeuju po podskupovima tako da njihov redni broj odgovara sumi rednih brojeva bita parnosti ovih skupova. Kodne rei, poput onih iz tabele (Slika 5.4.2), predloio je R. Hamming 1950. godine, pa se zato kae da ovakve kodne rei predstavljaju Hamingov kod (Hamming code).

5.5. OPERATIVNI SISTEM


BIOS olakava korienje raunara, jer omoguuje znakovnu komunikaciju korisnika i raunara. Ali, korienje raunara na nivou BIOS-a zahteva poznavanje detalja, kao to su, na primer, mainski formati naredbi. Pored toga, korisnik je prisiljen i da vodi evidenciju o korienju masovne i radne memorije. Ova evidencija obuhvata podatke o slobodnim i zauzetim blokovima, odnosno o slobodnim i zauzetim memorijskim lokacijama, pri emu se za zauzete blokove, odnosno za zauzete memorijske lokacije navodi ta im je sadraj. Zbog toga je korienje raunara na nivou BIOS-a komplikovano, a to znai i neproduktivno. Za jednostavnije i produktivnije korienje raunara je neophodno da se korisnika panja ne skree na detalje koji su nevani sa stanovita korisnika. Korisnik raunara je sutinski zainteresovan za upotrebu sadraja koji su trajno pohranjeni u blokovima masovne memorije. Za njega je sporedno gde se ti sadraji nalaze i kakvu internu predstavu imaju. Znai, ako se sadraji, njihova interna predstava i

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

124

organizacija nazovu datoteka (file), korisnik je zainteresovan za sadraje datoteka, ali ne i za njihovu organizaciju. Svi sadraji, smeteni u masovnu memoriju, su uoblieni kao datoteke. Prema tome, i mainski oblici programa se uvaju u masovnoj memoriji kao datoteke. Pre izvravanja, mainski oblici programa se privremeno smetaju u lokacije radne memorije. Pri tome, za korisnika je sporedno kako i gde se smeta mainski oblik programa, odnosno kakva je interna predstava ovakvog programa u toku njegovog izvravanja, jer je korisnik sutinski zainteresovan samo za rezultate angaovanja procesora na pomenutom izvravanju programa. Znai, ako se angaovanje procesora na izvravanju programa nazove proces (process), korisnik je zainteresovan za rezultate aktivnosti procesa, ali ne i za njihovu organizaciju. STRUKTURA OPERATIVNOG SISTEMA Koncept datoteke omoguuje razdvajanje upotrebe sadraja datoteka od potrebe poznavanja njihove organizacije. Zahvaljujui ovom razdvajanju, korisnik ne mora da poznaje nain uvanja sadraja datoteka, odnosno, organizaciju blokova masovne memorije. Brigu o tome u kojim blokovima je sadraj datoteke ili koliko je sadraj datoteke dugaak preuzima poseban programski modul za rukovanje datotekama. Da bi koncept datoteke imao praktinu vrednost, ovaj modul mora da sadri potprograme koji podravaju operacije za rukovanje datotekama. Primeri takvih operacija su operacija za stvaranje ili unitenje datoteke, odnosno operacije za preuzimanje i izmenu njenog sadraja. Za rukovanje datotekama neophodno je razlikovanje datoteka. Zato, svakoj datoteci, pri njenom stvaranju, korisnik pridruuje ime koje je sastavljeno od znakova iz nekog predodreenog skupa. Ostvarenje koncepta datoteke se zasniva na postojanju deskriptora datoteke, koji obuhvata atribute datoteke, kao to su njena veliina, redni brojevi blokova sa sadrajem datoteke ili vreme nastanka datoteke. Modul za rukovanje datotekama rukuje deskriptorima datoteka. Koncept procesa omoguuje razdvajanje upotrebe (izvravanja) programa od potrebe poznavanja njihove organizacije. Zahvaljujui ovom razdvajanju, korisnik ne mora da poznaje ni detalje organizacije lokacija radne memorije sa mainskim oblicima naredbi programa, a ni mainske formate naredbi. Brigu o tome u kojim lokacijama radne memorije su mainski oblici naredbi programa preuzima poseban programski modul za rukovanje procesima. Da bi koncept procesa imao praktinu vrednost, ovaj modul mora da sadri potprograme koji podravaju operacije za rukovanje procesima. Primeri takvih operacija su operacije za stvaranje ili unitenje procesa. Svaki proces karakteriu mainski oblik izvravanog programa, kao i vrednosti promenljivih i sadraj steka koji se menjaju u toku aktivnosti procesa. Oni zajedno obrazuju sliku procesa (process image). Ostvarenje koncepta procesa se zasniva na postojanju deskriptora procesa, koji obuhvata atribute procesa, kao to su broj lokacija radne memorije potrebnih

125

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

za smetanje slike procesa ili evidencija lokacija u koje je ona smetena. Modul za rukovanje procesima rukuje deskriptorima procesa. Rukovanje datotekama i procesima se oslanja na rukovanje slobodnim blokovima, odnosno slobodnim memorijskim lokacijama, radi njihovog zauzimanja i oslobaanja. Dok blokove zauzima i oslobaa samo modul za rukovanje datotekama, memorijske lokacije zauzimaju i oslobaaju i modul za rukovanje datotekama i modul za rukovanje procesima. Zato se rukovanje slobodnim blokovima preputa modulu za rukovanje datotekama, a za rukovanje slobodnim memorijskim lokacijama se uvodi poseban modul za rukovanje radnom memorijom, koji sadri potprograme koji podravaju operacije za zauzimanje i oslobaanje lokacija radne memorije. Prema tome, na modul za rukovanje radnom memorijom se oslanjaju moduli za rukovanje datotekama i procesima. Takoe, modul za rukovanje procesima se oslanja na modul za rukovanje datotekama, jer se mainski oblici programa od kojih nastaju slike procesa nalaze u datotekama koje se nazivaju izvrne datoteke. Izvrne datoteke sadre inicijalne slike procesa. U njima se nalaze mainski oblici programa, njihove ulazne adrese i duine, podaci o promenljivim i slino Moduli za rukovanje procesima, datotekama i radnom memorijom se oslanjanju na drajvere. Na primer, sva tri modula koriste drajver terminala za prikaz poruka, a modul za rukovanje datotekama koristi drajver diska za pristupanje blokovima diska. Drajveri obrazuju modul za rukovanje kontrolerima. Moduli za rukovanje procesima, datotekama, radnom memorijom i kontrolerima zajedno obrazuju operativni sistem (operating system). Slika 5.5.1 sadri prikaz slojevite strukture operativnog sistema. modul za rukovanje procesima modul za rukovanje datotekama modul za rukovanje radnom memorijom modul za rukovanje kontrolerima Slika 5.5.1 Slojevita struktura operativnog sistema Slojevita struktura operativnog sistema odraava meusobni odnos delova od kojih se on sastoji, jer se moduli iz viih slojeva oslanjaju na module iz niih slojeva tako to pozivaju njihove operacije. Operativni sistem predstavlja programski deo raunara. Ispod operativnog sistema su preostali delovi raunara, na koje se operativni sistem oslanja. Iznad operativnog sistema su korisniki programi, koji se oslanjaju na operativni sistem, jer pozivaju operacije njegovih modula. Iz strukture operativnog sistema sledi da je njegov zadatak da objedini raznorodne delove raunara u skladnu celinu i, uz to, da sakrije od korisnika sve o funkcionisanju raunara to nije bitno za njegovo korienje.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

126

INTERPRETER KOMANDI OPERATIVNOG SISTEMA Nakon usvajanja koncepata datoteke i procesa, direktno pristupanje pojedinim blokovima i memorijskim lokacijama postaje, ne samo suvino, nego i opasno, jer omoguuje proizvoljne izmene deskriptora datoteka i procesa, to moe da ugrozi ispravan rad operativnog sistema. Zato komandni jezik, koji se oslanja na operativni sistem, ne sme da sadri komande za direktno pristupanje blokovima i memorijskim lokacijama. Za jedinu preostalu komandu, namenjenu za pokretanje izvravanja programa, dovoljno je da odgovara imenu izvrne datoteke. Prema tome, zadatak interpretera komandi je da preuzme ime izvrne datoteke i da od modula za rukovanje procesima zatrai stvaranje odgovarajueg procesa. Po stvaranju, procesor se posveti stvorenom procesu, tako da nastavak izvravanja interpretera komandi usledi tek nakon kraja aktivnosti stvorenog procesa. Da bi obavio svoj zadatak, interpreter komandi se oslanja na modul za rukovanje kontrolerima (na njegov drajver terminala), radi znakovne komunikacije sa korisnikom. Ime, koje ne odgovara izvrnoj datoteci, ne moe biti komanda interpretera komandi. Takva datoteka ne sadri inicijalnu sliku procesa, pa modul za rukovanje procesima na osnovu njenog sadraja ne moe da stvori proces. Prema tome, jedino imena izvrnih datoteka predstavljaju ispravne komande interpretera komandi. Interpreter komandi spada u korisnike programe i nalazi se u korisnikom sloju iznad operativnog sistema. Zahvaljujui interpreteru komandi, postoje dva nivoa korienja operativnog sistema: (1) interaktivni nivo i (2) programski nivo. Na interaktivnom nivou korisnici koriste komande interpretera komandi operativnog sistema, a na programskom nivou korisniki programi pozivaju operacije pojedinih modula operativnog sistema. Ove operacije se nazivaju sistemski pozivi. Komande interpretera komandi operativnog sistema i sistemski pozivi obrazuju dva razliita korisnika interfejsa prema operativnom sistemu. Operativni sistem se prema korisnikim programima odnosi kao prema svojim potprogramima. Oigledan primer takvog odnosa operativnog sistema i korisnikih programa pruaju programi napisani u programskom jeziku C. Svaki C program sainjavaju potprogrami (funkcije), meu kojima se nalazi obavezno i potprogram (funkcija) sa imenom main. Podrazumeva se da izvravanje C programa zapoinje izvravanjem potprograma (funkcije) main. Njega poziva operativni sistem, zapoinjui tako aktivnost odgovarajueg procesa. SISTEMSKI PROGRAMI Rad na interaktivnom nivou operativnog sistema je mogu samo ako postoje izvrne datoteke, ija imena slue kao komande interpretera komandi. U suprotnom sluaju, nema mogunosti za komunikaciju korisnika i raunara. Zato uz operativni sistem obavezno dolaze izvrne datoteke, koje odgovaraju posebnim, sistemskim programima, kao to su editor, prevodilac (asembler ili kompajler), makro

127

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

pretprocesor, povezilac ili linker (linker), punilac ili louder (loader) i dibager (debugger). U nadlenosti editora su stvaranja i izmene tekst (znakovnih) datoteka. Zadatak asemblera je prevoenje asemblerskog programa u mainski oblik, a zadatak kompajlera je prevoenje programa, napisanog u programskom jeziku visokog nivoa, u mainski oblik. Oba prevodioca pronalaze program u odgovarajuoj izvornoj (programskoj tekst) datoteci, a rezultat prevoenja (mainski oblik programa koji je nespreman za interakciju sa operativnim sistemom) smetaju u objektnu datoteku. Zadatak makro pretprocesora je da vri tekstualne izmene izvornih datoteka. Poto njegova aktivnost prethodi aktivnosti prevodilaca, on se esto javlja i kao njihov poetni deo. Linker stvara izvrnu datoteku. Ona sadri inicijalnu sliku procesa, odnosno mainski oblik programa koji je spreman za interakciju sa operativnim sistemom. Louder uestvuje, esto kao deo operativnog sistema, u stvaranju slike procesa koja nastaje na osnovu inicijalne slike procesa. Dibager omoguuje nadgledanje izvravanja korisnikih programa, radi otkrivanja i otklanjanja greaka. Kao sistemski programi se javljaju i pomoni programi za rukovanje datotekama. Oni omoguuju pregledanje i izmene imena postojeih datoteka, prepisivanje sadraja iz datoteke u datoteku, unitavanje datoteka i slino. Ovakvi pomoni programi su ponekad deo inerpretera komandi. Svi sistemski programi koriste operativni sistem na nivou sistemskih poziva. Operativni sistem i sistemski programi stvaraju uopten model raunara, ije poznavanje je sasvim dovoljno, ne samo za korisnike gotovih programa, nego i za aplikacione programere. Ovaj model je nedovoljan samo za sistemske programere, koji se bave razvojem operativnih sistema i sistemskih programa. ODNOS BIOS-A I OPERATIVNOG SISTEMA BIOS i operativni sistem nude dva razliita pogleda na raunar. Korisnik BIOS-a vidi raunar kao mainu koja rukuje blokovima i memorijskim lokacijama, a korisnik operativnog sistema vidi raunar kao mainu koja rukuje datotekama i procesima. Poto raunar zapoinje rad izvravanjem BIOS-a, prirodno je da se pokretanje operativnog sistema osloni na BIOS. Komande BIOS-a su dovoljne da se blokovi, koji sadre operativni sistem, odnosno, koji sadre mainske oblike modula operativnog sistema, prebace sa diska u radnu memoriju, i da se, zatim, pokrene izvravanje operativnog sistema. Ali, takav nain pokretanja operativnog sistema je spor i bremenit grekama, jer se mora prebaciti veliki broj blokova. Zato se pokretanju operativnog sistema posveuje poseban program, nazvan inicijalni louder (bootstrap loader). On se pokree uz pomo BIOS-a. Za izvrni oblik inicijalnog loudera se rezervie jedan, na primer, nulti blok (boot block). Prema tome, na poetku rada raunara BIOS proita sa nultog bloka izvrni oblik inicijalnog loudera, smesti ga u radnu memoriju i zapone njegovo izvravanje. U toku svog izvravanja inicijalni louder prebaci u radnu memoriju module operativnog sistema i zapone njegovo izvravanje.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

128

Prethodno opisani nain pokretanja operativnog sistema dozvoljava korisniku da, pokretanjem jednog od vie inicijalnih loudera, odabere za rad jedan od vie operativnih sistema, i na taj nain stvori za sebe najbolje radno okruenje.

5.6. PREKLJUIVANJE
Radno ekanje (deavanja dogaaja van procesora), prisutno u radu drajvera, je izvor neracionalnog troenja procesorskog vremena. Umesto radnog ekanja, bolje je koristiti procesor u vieprocesnom reimu rada. U ovom reimu rada u radnoj memoriji istovremeno postoji vie slika procesa, a procesor se prekljuuje (context switch, dispatching) sa procesa ija aktivnost je postala zavisna od deavanja dogaaja van procesora, na proces za iju aktivnost jedino nedostaje procesor. Od istovremeno postojeih procesa, ije slike se istovremeno nalaze u radnoj memoriji, uvek je samo jedan u stanju 'aktivan', a ostali su ili u stanju 'eka' (deavanje vanjskog dogaaja) ili u stanju 'spreman' (znai, za aktivnost im nedostaje samo procesor). Za prekljuivanje je neophodno da bar jedan od neaktivnih istovremeno postojeih procesa bude u stanju 'spreman'. Radi toga postoji poseban sistemski proces, koji je uvek ili spreman ili aktivan. Njegov jedini zadatak je da angauje procesor kada nema drugih istovremeno postojeih procesa. Tada aktivnost ovoga procesa predstavlja radno ekanje nove komande interpretera komandi. Sistemski proces angauje procesor i kada su svi ostali istovremeno postojei procesi u stanju 'eka'. Tada aktivnost ovoga procesa predstavlja radno ekanje deavanja odgovarajueg vanjskog dogaaja. Do prekljuivanja procesora dolazi (1) na kraju aktivnosti procesa i (2) kada nastavak aktivnosti procesa zavisi od deavanja vanjskog dogaaja, kao to je obavljanje ulaza/izlaza vezanog za terminal ili disk. Zato se ovakvo prekljuivanje naziva ulazom-izlazom voeno prekljuivanje. Do ulazom-izlazom voenog prekljuivanja dolazi, na primer, kada nastavak aktivnosti procesa zavisi od preuzimanja znaka sa tastature terminala. Za ulazom-izlazom voeno prekljuivanje je karakteristino da u stanje 'eka' prelazi aktivni proces (sa koga se procesor prekljuuje), a da u stanje 'aktivan' prelazi spreman proces (na koga se procesor prekljuuje). Ovakvo prekljuivanje se poziva iz drajvera, radi izbegavanja radnog ekanja, ali i iz korisnikog programa, na kraju njegovog izvravanja, i to posredstvom modula za rukovanje procesima. Zato se potprogram ili operacija prekljuivanja nalazi u posebnom modulu za rukovanje procesorom. Ovaj modul je nazvan tako, jer on odluuje o angaovanju procesora tako to bira proces kome e se posvetiti procesor. Modul za rukovanje procesorom se nalazi ispod modula za rukovanje kontrolerima, jer njegov potprogram prekljuivanja pozivaju operacije drajvera. Slika 5.6.1 sadri prikaz slojeva operativnog sistema, proirenog modulom za rukovanje procesorom.

129

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

modul za rukovanje procesima modul za rukovanje datotekama modul za rukovanje radnom memorijom modul za rukovanje kontrolerima modul za rukovanje procesorom Slika 5.6.1 Slojevi operativnog sistema Svi istovremeno postojei procesi su upueni na iste resurse raunara, kao to su procesor, radna i masovna memorija. Uz pretpostavku da su svi istovremeno postojei procesi nezavisni (da imaju sopstvene zone radne memorije i sopstvene datoteke, kojima ne pristupaju drugi istovremeno postojei procesi), kao deljeni resurs se javljaju samo procesorski registri opte namene. Zato se, u prekljuivanju procesora, sadraji ovih registara prvo sauvaju, na primer u registarskom baferu procesa koga procesor naputa, a zatim se ovi registri napune prethodno sauvanim sadrajima iz registarskog bafera procesa kome se procesor posveuje. Podrazumeva se da registarski bafer sadri posebnu lokaciju za smetanje sadraja svakog registra koji je relevantan za prekljuivanje. Prirodno je da registarski bafer predstavlja deo deskriptora procesa. Prekljuivanje procesora se obavlja u toku izvravanja potprograma prekljuivanja. Njegovo izvravanje se poziva u toku aktivnosti jednog procesa, a po zavretku ovog izvravanja aktivnost nastavlja drugi proces. Pretpostavka je da, pre poziva potprograma prekljuivanja, u registar %0 bude smetena adresa registarskog bafera deskriptora procesa sa koga se procesor prekljuuje, a da u registar %1 bude smetena adresa registarskog bafera deskriptora procesa na koga se procesor prekljuuje. Podrazumeva se da su registri %0 i %1 radni registri, tako da njihov prethodni sadraj nije bitan. Asemblerski oblik potprograma prekljuivanja izgleda:
IZBACI POETAK MAKRO PREBACI_RP DODAJ_1 KRAJ MAKRO PREBACI_PR DODAJ_1 KRAJ IZBACI IZBACI IZBACI IZBACI IZBACI IZBACI IZBACI IZBACI IZBACI IZBACI prekljuivanje R (%0),R %0 R R,(%1) %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11

UBACI

prekljuivanje:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


IZBACI IZBACI IZBACI IZBACI UBACI UBACI UBACI UBACI UBACI UBACI UBACI UBACI UBACI UBACI UBACI UBACI UBACI UBACI NATRAG KRAJ %12 %13 %14 %15 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15

130

Prethodni potprogram prekljuivanja je napravljen pod pretpostavkom da registarski bafer sadri 14 lokacija, namenjenih za smetanje sadraja registara od %2 do %15. Ovaj potprogram se ne brine o sadraju status registra, jer se podrazumeva da status registar nije auran nakon poziva potprograma. Kljunu ulogu u prekljuivanju ima registar %15, jer sadri povratnu adresu. Izmenom njegovog sadraja se menja i povratna adresa, a to znai i proces ija aktivnost se nastavlja nakon izvravanja potprograma prekljuivanja. Pri tome se podrazumeva da, tokom stvaranja procesa, njegova ulazna adresa bude smetena u njegov registarski bafer u lokaciju koja je rezervisana za sadraj registra %15. Zahvaljujui tome, nakon prvog prekljuivanja procesora na ovaj proces, izvravanje zapoinje od njegove ulazne naredbe.

5.7. PREKID
Ulazom-izlazom voeno prekljuivanje je u potpunosti podreeno poveanju iskorienja procesora. Zato, do ulazom-izlazom voenog prekljuivanja dolazi samo kada se ustanovi da procesor ne moe biti vie korisno angaovan u okviru aktivnog procesa. Pri tome, prekljuivanju obavezno prethodi (1) pronalaenje spremnog procesa na koga e se procesor prekljuiti i (2) izmena stanja vie istovremeno postojeih procesa. Pomenute izmene stanja obuhvataju ne samo aktivan proces, sa koga se procesor prekljuuje, odnosno spreman proces, na koga se procesor prekljuuje, nego i procese u stanju 'eka', ako su se u meuvremenu desili vanjski dogaaji koji omoguuju nastavljanje njihove aktivnosti. Zato se, u okviru prethodnih izmena stanja procesa, proverava da li se neki od pomenutih vanjskih dogaaja desio, radi eventualnog prevoenja odgovarajueg procesa iz stanja 'eka' u stanje 'spreman'. Ovakve provere deavanja vanjskih dogaaja su uvek i samo vezane za ulazom-izlazom voeno prekljuivanje. Zato, ovakvo prekljuivanje ne nudi brzu reakciju procesora na deavanje vanjskih dogaaja, jer

131

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

do pomenute reakcije ne dolazi neposredno po deavanju vanjskog dogaaja, nego tek u okviru prvog prekljuivanja, koje usledi iza deavanja pomenutog vanjskog dogaaja. Izmeu dva ulazom-izlazom voena prekljuivanja moe da se desi vie uzastopnih vanjskih dogaaja iste vrste, kao to su uzastopni pritisci dirki tastature. Posledica je da, na primer, kod znaka moe da bude istisnut iz registra podataka tastature pre nego to ga procesor preuzme. Na ovaj nain prouzrokovan gubitak koda znaka ini znakovnu komunikaciju nepouzdanom, a interaktivni rad praktino nemoguim. U prethodnom primeru, procesor pravovremeno reaguje na deavanje vanjskog dogaaja, ako preuzme svaki kod znaka iz registra podataka tastature neposredno po njegovom prispeu u ovaj registar. To se desi, ako svaki pritisak na dirku tastature izazove izvravanje posebnog potprograma drajvera terminala, koji je zaduen za preuzimanje znaka iz registra podataka tastature. Za ostvarenje prethodnog neophodno je da izvravanje pomenutog potprograma drajvera terminala prekine zateenu aktivnost procesora, ali tako da se na kraju ovog izvravanja prekinuta aktivnost procesora nastavi, kao da nije bilo njenog prekidanja. Znai, u optem sluaju, deavanje vanjskog dogaaja, kao to je pritisak na dirku tastature, ili prikazivanje znaka na ekranu, ili kraj prenosa jednog bajta izmeu diska i njegovog kontrolera, izaziva prekid (interrupt) aktivnosti procesora. U okviru prekida pokree se izvravanje potprograma koji se naziva obraiva prekida (interrupt handler). Ulazna adresa ovog potprograma se naziva vektor (vector) obraivaa prekida. Izvravanje ovoga potprograma se naziva obrada prekida. Prekidi se, po svom poreklu, dele u vrste, kao to su prekid tastature, prekid ekrana ili prekid diska. Svakoj vrsti prekida je pridruen jedan obraiva prekida. Prekide izazivaju kontroleri nakon deavanja odgovarajueg vanjskog dogaaja. Pri tome oni obavetavaju procesor o vrsti prekida i tako omoguuju procesoru da zapone odgovarajuu obradu prekida. MEHANIZAM PREKIDA Svaku vrstu prekida kodira jednoznaan ceo broj. On se naziva broj vektora, jer ukazuje na vektor obraivaa prekida, pridruenog dotinoj vrsti prekida. Za prenos broja vektora od kontrolera ka procesoru podesne su linije podataka (koje povezuju svaki od kontrolera sa procesorom). Poto ove linije nisu uvek slobodne, kontroler ne upuuje samoinicijativno broj vektora procesoru, nego ga prvo samo obavesti o prekidu. Za to slui posebna linija najave prekida (interrupt request). Tek kada linije podataka postanu slobodne, procesor zahteva od kontrolera broj vektora. Za to slui posebna linija potvrde prekida (interrupt acknowledge). Po prijemu, procesor koristi broj vektora kao indeks posebne tabele (vektora) prekida (interrupt vector table), iji elementi sadre vektore obraivaa prekida. Na taj nain, procesor konvertuje broj vektora u vektor obraivaa prekida, pridruenog odgovarajuoj vrsti prekida.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

132

Tabela prekida se nalazi na predodreenom mestu radne memorije, na primer u prvih n njenih lokacija. Podrazumeva se da je nulta lokacija i dalje rezervisana za ulaznu adresu BIOS-a. Za obradu prekida je dovoljno smestiti vektor obraivaa prekida u programski broja. Ali, prethodno se mora sauvati zateeni sadraj programskog brojaa, da bi se prekinuta aktivnost mogla nastaviti. Isto vai i za status registar, jer se i njegov sadraj menja u obradi prekida. Za uvanje zateenog sadraja programskog brojaa slui registar %13, a za uvanje zateenog sadraja status registra slui registar %14. Ovakva namena registara %13 i %14 onemoguava njihovu upotrebu kao registara opte namene (isto vai i za registar %15, u koga se smeta povratna adresa pri pozivu potprograma). Procesor se ne brine o sadraju preostalih registara opte namene, jer je racionalnije da se na poetku obrade prekida sauvaju, a na kraju obrade prekida vrate zateeni sadraji samo onih registara opte namene koji se koriste u obradi prekida. Obraivai prekida nisu obini potprogrami, jer je za njihov kraj vezano vraanje u programski broja i status registar sadraja koji su u ovim registrima zateeni pre poetka obrade prekida i sauvani u registrima %13 i %14. Za vraanje ovih sadraja u pomenute registre namenjena je posebna naredba procesora KONCEPT, nazvana NASTAVI, jer omoguuje nastavljanje prekinute aktivnosti procesora. U registrima %13 i %14 ima mesta samo za po jedan sadraj programskog brojaa i status registra. Zato procesor KONCEPT ne dozvoljava da jedna obrada prekida bude prekinuta, radi druge obrade prekida. Znai, sve obrade prekida su istog nivoa. Omoguenost, odnosno onemoguenost obrade prekida pokazuje peti bit (SR4) status registra, koji se naziva bit prekida. Prekidi su omogueni kada ovaj bit sadri vrednost 1, a onemogueni kada on sadri vrednost 0. Procesor automatski onemoguuje obradu novih prekida u toku trajanja svake obrade prekida. U sluaju prekida raznih nivoa, kada svaku obradu prekida moe da prekine hitnija obrada prekida, za uvanje zateenih sadraja programskog brojaa i status registra se koristi stek (i tada je neophodna procesorska podrka rukovanju stekom). IZVEDBA PREKIDA Precizan opis aktivnosti procesora u sluaju prekida je sadran u mikroprogramu prekida. Njegov mainski oblik sadri mikro-programska memorija, a njegovu ulaznu adresu sadri poseban registar prekida upravljake jedinice, iji sadraj je stalan, kao i sadraj inicijalnog registra (Slika 5.7.1).

133

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

16 bita obavezne rei

statusne linije

4 najznaajnija bita obavezne rei (kod tipa naredbe) inicijalni registar 7 P53 7 registar prekida dekoder naredbe P54 7 P55 registar sekvence 7 7 R&T 25 upravljaki registar 25 P56 prekidake funkcije P57 mikro programska memorija 16

7 najmanje znaajnih bita upravljakog registra

18 najznaajnijih bita upravljakog registra

Slika 5.7.1 Organizacija upravljake jedinice koja podrava prekide Zatvaranje prekidaa P57 dovodi do izvravanja mikro-programa prekida. To se desi samo nakon najave prekida od kontrolera, ako je obrada prekida omoguena, a linije podataka slobodne. Na najavu prekida od kontrolera ukazuje vrednost 1 logike promenljive NAJAVA. Prekidi su omogueni kada bit prekida (SR4) sadri vrednost 1. Linije podataka su uvek slobodne neposredno pre nego procesor zapone fazu dobavljanja naredbe. Znai, ako su prekidi omogueni, tada, nakon najave prekida, preostaje samo da se saeka nastupanje faze dobavljanja naredbe, da bi, umesto izvravanja mikro-programa dobavljanja, zapoelo izvravanje mikro-programa prekida. Do nastupanja faze dobavljanja naredbe dolazi nakon smetanja ulazne adrese 00000012 mikro-programa dobavljanja u registar sekvence. Prisustvo ove ulazne adrese u registru sekvence detektuje logika funkcija PRE_DOBAVLJANJA:
~RS6&~RS5&~RS4&~RS3&~RS2&~RS1&RS0

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

134

Ova logika funkcija ima vrednost 1 samo ako pomenuti biti registra sekvence, sadre ulaznu adresu 00000012 mikro-programa dobavljanja. Prema tome, mogunost obrade prekida opisuje funkcija PREKID:
NAJAVA&SR4&PRE_DOBAVLJANJA

Izvravanje mikro-programa prekida zapoinje umesto izvravanja mikroprograma dobavljanja, ako se prekida P57 zatvori umesto prekidaa P55. Upravljanje prekidaem P57 opisuje funkcija:
R&T&PREKID

Radi spreavanja istovremenog zatvaranja prekidaa P57 i prekidaa P55, neophodno je izmeniti upravljanje prekideem P55. Izmenjeno upravljanje prekidaem P55 opisuje funkcija:
R&T&~IZA_DOBAVLJANJA&~PREKID

Obrade prekida komplikuje injenica da svaki od kontrolera moe istovremeno zatraiti obradu svog prekida. U tom sluaju, redosled obrada prekida zavisi od prioriteta kontrolera koji zahtevaju pomenute obrade. Dodela (statikih) prioriteta kontrolerima se zasniva na serijskom povezivanju (daisy chaining) ovih kontrolera linijom potvrde prekida. Na ovaj nain, kontroler ima vii prioritet to je blie procesoru. Najvii prioritet ima kontroler koji je najblii procesoru, jer do njega prvo stigne potvrda prekida. On tu potvrdu prosleuje dalje (prema sledeem kontroleru) samo ako nije zahtevao obradu prekida. U suprotnom sluaju, on potvrdu prekida ne prosleuje dalje, sve dok se njegov prekid ne obradi. Na isti nain se, prema svojim sledbenicima, odnose i preostali kontroleri. Slika 5.7.2 prikazuje organizaciju raunara KONCEPT koji podrava prekide.

135

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

NAJAVA PREKIDA 16 16 adresne linije linije podataka P POTVRDA PREKIDA TERMINAL

PROCESOR

RADNA MEMORIJA

POTVRDA PREKIDA MASOVNA MEMORIJA (DISK)

Slika 5.7.2 Organizacija raunara KONCEPT koji podrava prekide Vrednost logike promenljive NAJAVA je uvek jednaka nivou signala u liniji NAJAVA PREKIDA. Za uvanje broja vektora u svakom kontroleru je predvien poseban registar broja vektora, iji izlaz vodi na linije podataka, a stanje ijeg izlaznog prekidaa zavisi od nivoa signala na liniji POTVRDA PREKIDA. Prema tome, kada prvi od kontrolera, koji su traili obradu prekida, primi, preko linije POTVRDA PREKIDA, signal nivoa 1, on automatski po linijama podataka uputi prema procesoru sadraj svog registra broja vektora. Sadraj registra broj vektora odreuje nivo signala u linijama podataka dok god je u liniji POTVRDA PREKIDA nivo signala 1. Podrazumeva se da kontroleri koji su blii procesoru, ne ometaju ve zapoetu obradu prekida kontrolera koji su dalje od procesora, nego saekaju njen kraj, pa tek onda iskoriste svoj privilegovani poloaj. Znai, kontroleri reaguju na promenu signala sa nivoa 0 na nivo 1 u liniji POTVRDA PREKIDA. Mikro-program prekida izgleda:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

136

1. ciklus: programski broja %13 2. ciklus: status registar %14 3. ciklus: 0 SR4 4. ciklus: 1 POTVRDA PREKIDA linije podataka pomoni registar 5. ciklus: pomoni registar adresne linije 1 linije podataka programski broja U prvom i drugom ciklusu se sauvaju zateeni sadraji status registra i programskog brojaa, a u treem ciklusu se onemogue prekidi. Za to je neophodan odgovarajui pristup status registru. U etvrtom ciklusu se preuzme broj vektora. U petom ciklusu preuzeti broj vektora omogui (zahvaljujui tabeli prekida) preuzimanje ulazne adrese obraivaa prekida, koja se smeta u programski broja. Time se omogui dobavljanje prve naredbe obraivaa prekida i iza toga zapone obrada prekida. Podrazumeva se da iza mikro-programa prekida sledi mikroprogram dobavljanja. Naredba NASTAVI je bez operanada, ali se za nju podrazumeva da koristi: programski broja, status registar i registre %13 i %14. Prema tome, ona ne pripada ni jednom od postojeih tipova naredbi procesora KONCEPT, pa zahteva sopstveni mikro-program: 1. ciklus: %13 programski broja 2. ciklus: %14 status registar Izvravanje ovog mikro-programa omoguuje nastavljanje prekinute aktivnosti procesora i ujedno omoguuje prekide, jer u status registar vraa sadraj koji je prethodio prekidu, pa je, prema tome, omoguavao prekide. I za ovo je neophodan odgovarajui pristup status registru. Naredba NASTAVI omoguuje, posredno, izmenu sadraja status registra (koji je inae nepristupaan na drugi nain, jer ne moe da se pojavi kao operand bilo koje naredbe). To se postie, kada se, pre izvravanja naredbe NASTAVI, izmeni sadraj registra %14, jer tada izvravanje ove naredbe smesti u status registar izmenjeni sadraj registra %14. ODNOS OBRADE PREKIDA I PREKLJUIVANJA Za obradu prekida nije neophodno prekljuivanje, jer se obrada prekida moe da se obavi kao deo aktivnosti prekinutog procesa. Ali, obrada prekida moe izazvati prekljuivanje, ako prevede u stanje 'spreman' proces ija aktivnost je hitnija od aktivnosti prekinutog procesa. Radi odreivanja procesa ija aktivnost je

137

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

najhitnija, uvodi se prioritet (priority) procesa i podrazumeva se da je aktivnost najprioritetnijeg procesa najhitnija. Obraivai prekida obino pripadaju modulu za rukovanje kontrolerima. U nadlenosti ovog modula je i izmena sadraja tabele prekida. Zahvaljujui tome, obraiva prekida moe da bude i u bilo kom modulu operativnog sistema, pod uslovom da se njegov vektor, posredstvom modula za rukovanje kontrolerima, smesti u odgovarajui element tabele prekida. Zadatak operativnog sistema je da, na poetku rada raunara, inicijalizuje tabelu prekida i da zatim inicijalizuje status registar, smetajui u njegov bit prekida vrednost 1, radi omoguavanja prekida, jer je pretpostavka da su prekidi onemogueni na poetku rada raunara. Prekidi izazivaju podelu drajvera na gornji i donji deo. Izmeu njih se nalaze baferi, namenjeni za razmenu podataka izmeu gornjeg i donjeg dela drajvera. Gornji deo drajvera se sastoji od potprograma koji podravaju operacije, namenjene slojevima postavljenim iznad sloja sa drajverima. Ovakve operacije omoguuju, na primer, znakovnu komunikaciju izmeu korisnika i raunara ili prenos blokova na disk i sa diska. U izvravanju ovih operacija dolazi do zaustavljanja aktivnosti procesa i do prekljuivanja procesora, ako nisu ispunjeni uslovi za nastavljanje pomenutih aktivnosti (na primer, ako nisu prispeli oekivani znakovi sa tastature ili ako nije prispeo oekivani blok sa diska). Donji deo drajvera se sastoji od obraivaa prekida, okrenutih kontrolerima koji reaguju na deavanje vanjskih dogaaja. Obrade prekida omoguuju nastavljanje prethodno zaustavljenih aktivnosti procesa i dovode do prekljuivanja procesora na neki od ovih procesa, ako je on prioritetniji od prekinutog procesa. Za obrade prekida je vano da obuhvate samo neodlone stvari, a sve ostalo prepuste procesima. Na taj nain se skrauju periodi u toku kojih su prekidi onemogueni i tako se skrauje vreme reakcije na prekide. Procesi koji preuzimaju podatke od obraivaa prekida, radi nastavljaja njihove obrade, se nazivaju pozadinski (background) procesi. ORGANIZACIJA DRAJVERA TERMINALA U sluaju drajvera terminala, donji deo drajvera sainjavaju obraiva prekida tastature i obraiva prekida ekrana. Do obrade prekida tastature dolazi im pristigne znak u registar podataka tastature. U ovoj obradi, prispeli znak se prebacuje u ulazni bafer drajvera terminala. Ulazni bafer omoguuje unos znakova unapred (pre nego ih neki proces zatrai), jer u ulaznom baferu prispeli znakovi ostaju sve dok ih ne preuzme neki od procesa, i to posredstvom operacije gornjeg dela drajvera terminala. Ako je ulazni bafer prazan, aktivnost ovih procesa se zaustavlja do njegovog punjenja. Do obrade prekida ekrana dolazi im registar podataka ekrana postane spreman za prijem novog znaka (im je prethodni znak prikazan). U ovoj obradi, registar podataka ekrana se puni znakom iz izlaznog bafera drajvera terminala, jasno, kada on nije prazan. U izlazni bafer znakove smetaju procesi, opet

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

138

posredstvom potprograma gornjeg dela drajvera terminala. Kada se izlazni bafer napuni, aktivnost ovih procesa se zaustavlja do njegovog pranjenja. Slika 5.7.3 sadri prikaz organizacije drajvera terminala.
gornji deo drajvera ulazna operacija ulazni bafer donji deo drajvera izlazna operacija izlazni (eho) bafer

obraiva prekida obraiva prekida tastature ekrana

Slika 5.7.3 Organizacija drajvera terminala ORGANIZACIJA DRAJVERA DISKA U sluaju drajvera diska, donji deo drajvera sainjava obraiva prekida diska. Do obrade prekida diska dolazi kada kontroler diska zavri trenutnu aktivnost i prekidom objavi da je mogu pristup registru podataka diska. U ovoj obradi, obavlja se jedan od koraka u postupku korienja diska i to onaj koji je na redu. To znai da prekida (njihovih obrada) ima koliko i ovih koraka: po jedan za saoptavanje broja staze i broja sektora, odnosno po jedan za prenos svakog bajta bloka. Obraiva prekida diska pronalazi broj staze, broj sektora i adresu zone radne memorije ije lokacije uestvuju u prenosu bajta u upravljakom baferu drajvera diska (koga napune ulazna ili izlazna operacija iz gornjeg dela drajvera diska). Aktivnost procesa, koji je posredstvom operacije iz gornjeg dela drajvera diska zatraio prenos bloka, se nastavlja tek kada se postupak korienja diska zavri, odnosno, kada se bajti bloka prenesu u eljenom smeru. Slika 5.7.4 sadri prikaz organizacije drajvera diska.
gornji deo drajvera ulazna operacija izlazna operacija

upravljaki bafer donji deo drajvera obraiva prekida diska

Slika 5.7.4 Organizacija drajvera diska USKLAIVANJE RADA KONTROLERA I UREAJA Prekidi omoguuju istovremeni i nezavisan rad procesora i kontrolera, jer, dok kontroler opsluuje svoj ureaj, procesor je posveen procesu ija aktivnost ne

139

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

zavisi od ovog kontrolera. Nakon obavljanja svog zadatka, kontroler prekidom o tome obavetava procesor i, eventualno, izaziva njegovo prekljuivanje. I dok su, tako, aktivnost procesora i kontrolera asinhrone, aktivnost kontrolera i ureaja, koga kontroler opsluuje, su sinhrone. Za sinhronizaciju kontrolera i pomenutog ureaja koristi se princip rukovanja (handshaking). Kao to rukovanje nije mogue bez jednog partnera, tako ni saradnja kontrolera i njegovog ureaja nije mogua, ako za nju nisu spremne obe strane. Svoju spremnost za saradnju kontroler oznaava smetanjem vrednosti 1 u posebnu logiku promenljivu KONTROLER, koja odreuje nivo signala na veznoj liniji, usmerenoj od kontrolera ka ureaju. Na isti nain postupa i ureaj sa svojom logikom promenljivom UREAJ, koja odreuje nivo signala na veznoj liniji, usmerenoj od ureaja ka kontroleru. I kontroler i ureaj stupaju u meusobnu interakciju samo kada su signali u obe vezne linije na nivou 1. Obaranje signala na nivo 0 u bilo kojoj od ove dve vezne linije, zaustavlja meusobnu interakciju kontrolera i njegovog ureaja.

5.8. SABIRNICA
Suvie veliki broj prekida izaziva znaajno troenje procesorskog vremena (delom na izvravanje mikro-programa prekida, a delom na obradu prekida). Broj prekida se ne moe smanjiti dok god je procesor centralna taka raunara i dok mora da posreduje pri prenosu svih podataka izmeu preostalih delova raunara. Znai, tek po stvaranju uslova za direktan kontakt izmeu delova raunara, kao to su radna memorija i kontroler diska, postaje mogue znaajno smanjenje broja prekida. U ovakvim okolnostima, kontroler diska ne bi morao da prekida procesor, radi prenosa svakog bajta podataka na relaciji radna memorija registar podataka kontrolera diska. Umesto toga on bi mogao da samostalno obavi prenos svih bajta bloka i da, zatim, prekidom o tome obavesti procesor. To znai da bi umesto 512 prekida bio samo 1 prekid, ako bi blok sadrao 512 bajta. Za direktan kontakt bilo koja dva dela raunara neophodno je postojanje veznih linija koje povezuju sve delove raunara. Ovakve vezne linije se nazivaju sabirnica ili magistrala (bus). Direktan kontakt kontrolera diska i radne memorije se naziva direktan memorijski pristup ili skraeno DMA (direct memory access). Kontroler diska, koji je osposobljen za direktni memorijski pristup, se naziva DMA kontroler. Podrazumeva se da i procesor i DMA kontroleri pristupaju radnoj memoriji posredstvom sabirnice. U svakom trenutku sabirnicu sme da koristi ili samo procesor ili samo jedan od DMA kontrolera (u suprotnom bi dolo do meanja signala na linijama sabirnice, to bi izazvalo neispravan prenos adresa, podataka i upravljakih signala). Zato je neophodno obezbediti upravljanje sabirnicom, to se moe poveriti procesoru. U tom sluaju, svaki DMA kontroler, pre pristupa radnoj memoriji, mora od procesora da zatrai dozvolu za korienje sabirnice, na primer tako to e pridruiti vrednost 1 posebnoj logikoj promenljivoj ZAHTEV (bus request). Ova promenljiva odreuje nivo signala u istoimenoj veznoj liniji. Procesor

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

140

dozvoljava korienje sabirnice DMA kontroleru, kada pridrui vrednost 1 posebnoj logikoj promenljivoj DOZVOLA (bus grant). Ova promenljiva odreuje nivo signala u istoimenoj veznoj liniji. Direktan memorijski pristup zapoinje procesor, kada DMA kontroleru saopti: 1. broj staze, 2. broj sektora, 3. broj bajta za prenos, 4. adresu prve od lokacija radne memorije koje uestvuju u prenosu i 5. smer prenosa. Za smetanje svakog od prva 4 podatka postoji poseban registar u DMA kontroleru. To su registar broja staze, registar broja sektora, registar broja bajta i registar adrese. Uz to, DMA kontroler sadri jo registar stanja i registar podataka. Smer prenosa se saoptava posredstvom registra stanja, a registar podataka uestvuje u prenosu bajta izmeu diska i DMA kontrolera, odnosno izmeu DMA kontrolera i lokacija radne memorije. Podrazumeva se da se izme u lokacija radne memorije i registra podataka prenosi svaki od 16 bita, pri emu opisani DMA kontroler koristi samo 8 najmanje znaajnih bita. DMA kontroler trai dozvolu za korienje sabirnice, kada postane spreman za prenos bajta na relaciji izmeu lokacije radne memorije i registra podataka. Po dobijanju ove dozvole, on pristupi odgovarajuoj lokaciji radne memorije, radi prenosa pomenutog bajta iz registra podataka ili u njega. Nakon prenosa svakog bajta, DMA kontroler oslobaa sabirnicu pridruivanjem vrednosti 0 logikoj promenljivoj ZAHTEV, to navede procesor da preuzme sabirnicu, pridruivanjem vrednosti 0 logikoj promenljivoj DOZVOLA. Uz to, DMA kontroler umanji za vrednost 1 sadraj registra broj bajta, da bi otkrio kada su svi bajti preneseni. To se desi kada, nakon umanjenja, ovaj registar sadri vrednost 0. Tada DMA kontroler prekidom obavetava procesor da je prenos zavren. U suprotnom sluaju, on povea za vrednost 1 sadraj registra adrese i tako odredi adresu lokacije radne memorije koja uestvuje u narednom prenosu. Vrlina direktnog memorijskog pristupa je da on smanjuje angaovanje procesora na obradi prekida, jer znaajno smanjuje broj prekida. Njegova mana je do on usporava rad procesora kad god mu uzima sabirnicu, jer procesor mora da saeka da DMA kontroler zavri korienje sabirnice, da bi mogao da pristupi radnoj memoriji. Procesor i DMA kontroler ne smetaju jedan drugom samo ako istovremeno nemaju potrebu za korienjem sabirnice. To se desi kada procesor pristupa svojim registrima, dok DMA kontroler pristupa radnoj memoriji. Procesor moe da dozvoli korienje sabirnice kad god je u poluciklusu dobavljanja mikronaredbe, jer mu tada sabirnica nije potrebna. Ali, kada dozvoli DMA kontroleru da koristi sabirnicu, procesor ne sme da zapone obavljanje mikro-naredbe koja pristupa radnoj memoriji, sve dok mu sabirnica ne postane raspoloiva. To znai da

141

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

poetak obavljanja svake od mikro-naredbi zavisi i od vrednosti logikih promenljivih DOZVOLA, P i . Slika 5.8.1 prikazuje verziju raunara KONCEPT, koji sadri procesor, radnu memoriju, terminal, masovnu memoriju, sabirnicu i operativni sistem.
adresne linije linije podataka P NAJAVA PREKIDA 16 POTVRDA PREKIDA 16 ZAHTEV DOZVOLA

LINIJE SABIRNICE

PROCESOR

RADNA MEMORIJA

TERMINAL

MASOVNA MEMORIJA (DISK)

Slika 5.8.1 Organizacija raunara KONCEPT zasnovanog na sabirnici

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

142

Slika 5.8.1 sadri kvadrate sa natpisima TERMINAL i MASOVNA MEMORIJA koji oznaavaju i kontrolere i odgovarajue fizike ureaje. U sluaju da postoji vie diskova, njihovi DMA kontroleri se serijski povezuju linijom DOZVOLA. Ovo se radi iz istih razloga zbog kojih su kontroleri serijski povezani linijom POTVRDA PREKIDA. Prema tome, to je DMA kontroler blii procesoru, on ima vii prioritet u korienju sabirnice. DMA kontroler ima svojstva jednostavnih procesora, jer obavlja aritmetike operacije i koristi sabirnicu. Dok ovakav kontroler koristi sabirnicu, procesor ne reaguje na prekide. Vezne linije P, , NAJAVA PREKIDA, POTVRDA PREKIDA, ZAHTEV i DOZVOLA spadaju u upravljake linije sabirnice.

5.9. VIEKORISNIKI RAD


Periodini prekidi omoguuju ravnomernu raspodelu procesorskog vremena izmeu raznih procesa, ako izazivaju kruno prekljuivanje (round robin) procesora s jednog od ovih procesa na drugi. Periodine prekide izaziva sat. To je digitalni sklop sastavljen od (1) kristalnog oscilatora koji generie impulse pravilnog perioda i od (2) brojaa tih impulsa. Sat generie prekid kada broja izbroji zadani broj impulsa. Brojanje prekida (otkucaja) sata je osnova za praenje proticanja vremena, odnosno za uvoenje pojma sistemskog vremena koje se izraava kao broj prekida sata. Sat je neophodan za viekorisniki rad, u toku koga vie korisnika istovremeno koristi raunar. Pri tome, svaki od njih raspolae sopstvenim terminalom, posredstvom koga ostvaruje interakciju sa svojim procesima. Zahvaljujui praenju proticanja sistemskog vremena, mogue je obezbediti periodino prekljuivanje procesora sa procesa jednog korisnika na proces drugog korisnika i tako stvoriti privid da raunar istovremeno opsluuje vie korisnika. Ovaj privid se temelji na velikoj brzini procesora. LOGIKI I FIZIKI ADRESNI PROSTORI Viekorisniki rad stvara mogunost za nehotino ili namerno meusobno ometanje korisnika. Dovoljno je da proces jednog korisnika neovlateno izmeni sadraj memorijskih lokacija koje pripadaju slici procesa drugog korisnika. Zatita od meusobnog ometanja korisnika se zasniva na spreavanju procesa da pristupaju memorijskim lokacijama koje ne pripadaju njihovim slikama. To se moe ostvariti ako se za svaki proces uvede njegov poseban logiki adresni prostor i tako razdvoje slike raznih procesa. Slike procesa se i dalje nalaze u obinom ili fizikom adresnom prostoru. Logiki adresni prostor se sastoji od logikih adresa koje se pretvaraju u fizike adrese iz fizikog adresnog prostora. Pre pretvaranja, proverava se ispravnost logike adrese, radi detektovanja pokuaja izlaska procesa iz njegovog logikog adresnog prostora. Podrazumeva se da uvedeni logiki adresni prostor

143

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

obuhvata niz od n memorijskih lokacija sa logikim adresama od 0 do n-1. Najvea logika adresa se zove granina adresa. Ona se menja od procesa do procesa, jer je veliina logikog adresnog prostora odreena brojem memorijskih lokacija, potrebnih za smetanje slike procesa. Pojava logike adrese vee od granine adrese predstavlja pokuaj izlaska van logikog adresnog prostora procesa (van njegove slike) i tretira se kao greka. Otkrivanje ovakve greke se sastoji od poreenja logike i granine adrese, a zasniva se na vaenju nejednaine: 2n > 2i (n > 0, i = 0, ... , n-1) Prethodna nejednaina ukazuje da se poreenje logike i granine adrese svodi na poreenje korespondentnih bita ovih adresa i to od znaajnijih ka manje znaajnim bitima. im se pronau razliiti korspondentni biti, odmah je jasno da je via adresa iji bit sadri 1. Poreenje bita Li logike adrese sa korespondentnim bitom Gi granine adrese opisuju logike funkcije Vi (vie) i Ni (nie) za i = 15, ... , 0:
Vi = Li&(~Gi) Ni = (~Li)&Gi

One pokazuju da li je i-ti bit logike adrese vii ili nii od i-tog bita granine adrese. Uz pomo prethodnih logikih funkcija, proveru da li je logika adresa via od granine adrese opisuje logika funkcija V:
V = V15|(~N15&(V14|(~N14&( ... (V1|(~N1&V0)) ))))

U sluaju greke, kada je logika adresa via od granine adrese, ukazuje na pokuaj izlaska van logikog adresnog prostora. PRETVARANJE LOGIKE ADRESE U FIZIKU

je tano i

Logiku adresu je mogue pretvoriti u fiziku samo ako je V netano. Za pretvaranje logike adrese u fiziku je vano uoiti da se logiki adresni prostori raznih procesa mogu istovremeno preslikati u isti fiziki adresni prostor tako da se: 1. logike adrese od 0 do n1-1 logikog adresnog prostora prvog procesa preslikaju u fizike adrese od 0 do n1-1 fizikog adresnog prostora, 2. da se logike adrese od 0 do n2-1 logikog adresnog prostora drugog procesa preslikaju u fizike adrese od n1 do n1+n2-1 fizikog adresnog prostora i tako dalje (Slika 5.9.1).

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

144

logike adrese logikih adresnih prostora logiki adresni prostor prvog procesa logiki adresni prostor drugog procesa logiki adresni prostor treeg procesa 0

fizike adrese fizikog adresnog prostora 0 (bazna adresa)

...
n1-1 0 n1-1 n1 (bazna adresa)

...
n2-1 0 fiziki adresni n1+n2-1 n1+n2 (bazna adresa) prostor

...
n3-1 n1+n2+ n3-1

...

Slika 5.9.1 Preslikavanje logikih adresnih prostora raznih procesa u fiziki adresni prostor Slika 5.9.1 ukazuje da se pretvaranje logike adrese u fiziku svodi na sabiranje logike adrese sa baznom adresom. Ona odgovara poetnoj fizikoj adresi od koje se logiki adresni prostor dotinog procesa preslikava u fiziki adresni prostor. Granina i bazna adresa karakteriu proces, odnosno njegovu sliku i menjaju se od procesa do procesa. Za uvanje granine i bazne adrese potrebni su posebni registri, koji se nazivaju granini (limit) i bazni (base) registar. Poto se sadraji ovih registara razlikuju od procesa do procesa, oni se menjaju u toku prekljuivanja, poput sadraja ostalih procesorskih registara opte namene. Uz granini i bazni registar, za poreenje logike i granine adrese potreban je komparator, koji implementira logiku funkciju V. Za pretvaranje logike adrese u fiziku potreban je sabira, koji sabira logiku i baznu adresu. Slika 5.9.2 prikazuje postupak pretvaranja logike adrese u fiziku.

145

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

logika adresa (procesor) grani ni registar

16 komparator 16 ~V sabira fizi ka adresa (sabirnica)

bazni registar

Slika 5.9.2 Postupak pretvaranja logike adrese u fiziku Postupak pretvaranja logike adrese u fiziku se nalazi u nadlenosti posebnog sklopa koji se oznaava skraenicom MMU (Memory Management Unit ili jedinica za upravljanje memorijom). Ovaj sklop moe biti u okviru procesora ili van njega. U svakom sluaju, u MMU ulazi logika adresa, a iz njega, eventualno, izlazi fizika adresa, koja se upuuje ka sabirnici. IZUZETAK Fizika adresa odlazi ka sabirnici samo nakon uspene provere ispravnosti logike adrese, znai ako vai ~V. Suprotan sluaj, u kome je provera ispravnosti logike adrese neuspena, jer vai V, predstavlja izuzetak (exception). U sluaju pojave izuzetka, neophodno je prekinuti aktivni proces, jer on zahteva pristupanje nedozvoljenoj memorijskoj lokaciji. Zbog toga su izuzeci podvrsta prekida. Zadatak MMU je da ukae na izuzetak. Procesor reaguje na izuzetak tako to pokree mikro-program izuzetka, koji se od mikro-programa prekida razlikuje samo po nainu dobavljanja broja vektora. Poto je izuzetak rezultat aktivnosti procesora, prirodno je da procesor samostalno obezbedi broj vektora, na primer, iz posebnog registra broja vektora, koji se nalazi u okviru procesora. Sadraj ovog registra je predodreen i nepromenljiv. Pomenuti broj vektora indeksira element tabele prekida sa vektorom, odnosno ulaznom adresom obraivaa izuzetka. Adresa obraivaa izuzetka se preuzima iz tabele prekida i smeta u programski broja tokom izvravanja mikro-programa izuzetka. Zadatak obrade izuzetka je da zaustavi nedozvoljenu aktivnost procesa, uz registrovanje mesta njene pojave. Na mesto pojave nedozvoljene aktivnosti procesa ukazuje sadraj zateen u programskom brojau u trenutku izuzetka. Na ovaj nain moe se otkriti i otkloniti greka koja je izazvala nedozvoljenu aktivnost procesora. Za uvanje ulazne adrese mikro-programa izuzetka, potrebno je proiriti upravljaku jedinicu procesora KONCEPT posebnim registrom izuzetka. Uloga ovoga registra se ne razlikuje od uloge registra prekida. Ipak, prirodno, funkcije njihovih izlaznih prekidaa se razlikuju, jer mikro-program izuzetka poinje da se izvrava im se ustanovi nedozvoljena aktivnost procesa. On, znai, prekida i izvravanje mikro-programa u toku koga se desi izuzetak. Onemoguavanje izuzetaka nema smisla. Izuzeci se razlikuju od prekida:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

146

1. 2. 3. 4.

po tome to MMU, a ne kontroler otkriva pojavu izuzetka, po tome to broj vektora izuzetka pribavlja procesor, a ne kontroler, po tome to obrada izuzetka poinje odmah po njegovom otkrivanju i po tome to izuzeci ne mogu biti onemogueni.

PRIVILEGOVANI I NEPRIVILEGOVANI REIM RADA PROCESORA Za preuzimanje i izmenu sadraja graninog i baznog registra neophodne su posebne naredbe procesora. Ako bi pravo pristupanja ovim registrima imali svi procesi, tada bi oni mogli da svojevoljno preslikavaju svoj logiki adresni prostor u fiziki i da tako obezvrede zatitu, odnosno da proveru logike adrese uine besmislenom. Zato je pravo pristupanja graninom i baznom registru iskljuiva privilegija operativnog sistema. Radi uspostavljanja ovakve privilegije, neophodno je razlikovati privilegovane naredbe od neprivilegovanih naredbi procesora, kao i privilegovani reim rada procesora (kernel, superuser mode) od neprivilegovanog reima rada procesora (user mode). U privilegovane naredbe procesora spadaju naredbe za preuzimanje i izmenu sadraja graninog i baznog registra. Izvravanje privilegovanih naredbi je dozvoljeno samo u toku privilegovanog reima rada procesora, dok je izvravanje neprivilegovanih naredbi mogue i u privilegovanom i u neprivilegovanom reimu rada procesora. Privilegovani reim rada procesora je rezervisan samo za izvravanje operativnog sistema, a neprivilegovani reim rada procesora je predvien za izvravanje svih korisnikih programa. Podrazumeva se da se u privilegovanom reimu rada koriste fizike adrese, jer operativni sistem upravlja celom (fizikom) radnom memorijom, pa je prirodno i da koristi njene adrese. Deo fizikog adresnog prostora, u koji se preslikava logiki adresni prostor procesa i kome proces pristupa u neprivilegovanom reimu rada procesora, se naziva korisniki prostor (user space). Fiziki adresni prostor, koga za svoje potrebe koristi operativni sistem u privilegovanom reimu rada procesora, se naziva sistemski prostor (kernel space). U procesoru KONCEPT, za oznaavanje aktuelnog reima rada procesora moe da poslui esti bit status registra (SR5), koji se naziva bit privilegije. Kada je procesor u privilegovanom reimu rada, tada bit privilegije sadri vrednost 1. U suprotnom sluaju, on sadri vrednost 0. Da bi se spreile neovlatene izmene bita privilegije, naredba NASTAVI se, takoe, svrstava u privilegovane naredbe. Poto ovu naredbu sadre, kao svoju poslednju naredbu, obraivai prekida i izuzetaka, pre obrade prekida i izuzetaka neophodno je procesor prevesti u privilegovani reim rada. To zahteva proirenje mikro-programa prekida i izuzetka, radi smetanja vrednosti 1 u bit privilegije status registra. Za to je neophodan poseban pristup bitu privilegije status registra, u toku koga se njegov sadraj izmeni, a sadraj ostalih bita status registra ostane neizmenjen. Zbog korienja privilegovane naredbe, obraivai prekida i izuzetaka ulaze u sastav operativnog sistema.

147

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Pokuaj izvravanja privilegovanih naredbi u neprivilegovanom reimu rada predstavlja nedozvoljenu aktivnost, na koju, takoe, reaguje mikro-program izuzetka. Ova vrsta izuzetka se otkriva na osnovu koda izvravane naredbe i sadraja bita privilegije status registra. Kao izuzetak se mogu tretirati i pojave kodova nepostojeih naredbi, pa i neispravnih operanada, kao to je, na primer, pojava vrednosti 0 u ulozi delioca za naredbu deljenja kod procesora koji podravaju ovakvu naredbu. Takoe, kao izuzetak se moe tretirati i pojava pogrenog rezultata, poput izlaska van opsega. IZVEDBA SISTEMSKIH POZIVA Neprivilegovani reim rada, rezervisan za izvravanje korisnikih programa, spreava da sistemski pozivi budu u obliku obinih poziva potprograma. U ovom sluaju je problematino adresiranje pozivanih operacija operativnog sistema, jer se one nalaze van slike procesa, a to znai i van njegovog korisnikog prostora. Da bi se izbeglo korienje nedozvoljenih adresa, operacije operativnog sistema se oblikuju kao obraivai izuzetaka, a sistemski pozivi se oslanjaju na posebnu naredbu procesora za svesno izazivanje izuzetka (IZAZOVI). Na mestu jedinog operanda ovakve naredbe navodi se broj vektora, dodeljenog pozivanoj operaciji operativnog sistema. Izvravanje ove naredbe se svodi na izvravanje mikroprograma izuzetka. Prema tome, ovakav sistemski poziv, pored poziva traene operacije, izaziva i prevoenje procesora iz neprivilegovanog u privilegovani reim rada. Pri tome nema mogunosti za zloupotrebu prelaska iz neprivilegovanog u privilegovani reim rada procesora, jer je mainski oblik pozivane operacije van domaaja korisnika. Poto sistemski pozivi zahtevaju korienje specifinih asemblerskih naredbi, oni se sakrivaju unutar posebnih sistemskih potprograma. Ovakvi sistemski potprogrami obrazuju sistemsku biblioteku. Zahvaljujui sistemskoj biblioteci, pozivanje operacija operativnog sistema se svodi na pozivanje potprograma iz sistemske biblioteke.

5.10. PITANJA
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ta omoguuje upravljaka tabla? ta omoguuje komandni jezik? Posredstvom kojih registara procesor pristupa kontrolerima? Kada se menja registar stanja kontrolera? Iz kojih registara kontrolera procesor moe da ita, a u koje moe da pie? Koji standardni znakovni kodovi postoje? Kada se brojevi koriste u znakovnom a kada u internom obliku? Kako se obavlja konverzija brojeva iz internog u znakovni oblik i obrnuto? Kako se interpretiraju komande? ta je zadatak ulazne/izlazne operacije drajvera? Od ega se sastoji radno ekanje? ta ulazi u sastav BIOS-a?

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

148

13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.

Koliko nivoa korienja BIOS-a postoji? U kojim tehnologijama se pravi memorija? Koje korake obuhvata prenos bloka diska? Da li je ispravna kodna re 0010 sa tri bita podataka i jednim bitom parnosti? Koji bit je pogrean, ako je netaan bit parnosti 1 u kodnoj rei sa etiri bita podataka (sa rednim brojevima 3, 5, 6 i 7) i tri bita parnosti podataka (sa rednim brojevima 1, 2 i 4)? Koje pojmove uvodi operativni sistem? ta je zadatak operativnog sistema? ta sadri slika procesa? Koji deskriptori postoje? ta omoguuje interpreter komandnog jezika operativnog sistema? ta obrazuje korisnike interfejse prema operativnom sistemu? Koji sistemski programi postoje? Izvravanjem kog programa zapoinje rad raunara? Kome korisnik saoptava koji operativni sistem treba da bude pokrenuti na poetku rada raunara? ta podrazumeva vieprocesni reim rada? ta omoguava vieprocesni reim rada? Zato je uvedeno prekljuivanje? ta je zadatak sistemskog procesa? Kada dolazi do ulazom-izlazom voenog prekljuivanja? ta karakterie ulazom-izlazom voeno prekljuivanje? ta se deava u toku prekljuivanja? Koje su mane ulazom-izlazom voenog prekljuivanja? Zato su uvedeni prekidi? Ko izaziva prekide? ta je vezano za prekide? ta sadri tabela prekida? Kojim linijama se prenosi broj vektora prekida od kontrolera ka procesoru? Koje linije su potrebne za podrku prekida? O emu brine mikro-program prekida? Po emu se obraiva prekida razlikuje od obinog potprograma? Kada i kako se onemoguuju prekidi? ime se proiruje upravljaka jedinica radi podrke prekida? Kada dolazi do obrade prekida? Kako upravljanje prekidima utie na upravljaku jedinicu? Kojom linijom i zato se kontroleri serijski povezuju (daisy chaining)? ta sadre kontroleri koji podravaju prekide? Gde se nalazi registar broja vektora? Zato je uveden prioritet procesa?

149

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78.

Koji zadatak imaju pozadinski procesi? Od ega se sastoji drajver terminala koji podrava prekide? Od ega se sastoji drajver diska koji podrava prekide? ta karakterie sabirnicu? Koje linije su uvedene radi upravljanja sabirnicom? ta sadri DMA kontroler? ta se deava u toku aktivnosti DMA kontrolera? Koje linije serijski povezuju DMA kontrolere? ta karakterie viekorisniki rad? ta je neophodno za viekorisniki rad? ta sadri sat? Kako se izraava sistemsko vreme? ta karakterie logiki adresni prostor? Kako se pretvara logika adresa u fiziku adresu? ta sadri MMU? ta radi MMU? ta karakterie izuzetke? ta ukljuuje upravljaka jedinica za podrku izuzetaka? ta je zadatak obrade izuzetaka? Po emu se razlikuju prekidi i izuzeci? ta je potrebno za spreavanje neovlaenog pristupa graninom i baznom registru? Koje su privilegovane naredbe? ta karakterie privilegovne naredbe? ta se moe izvravati u privilegovanom reimu rada procesora? ta se moe izvravati u neprivilegovanom reimu rada procesora? Za ta se koriste izuzeci? Za ta slui naredba IZAZOVI? Na ta se oslanjaju sistemski pozivi?

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

150

6. SISTEMSKI PROGRAMI
6.1. EDITOR
Editor je namenjen za zadavanje sadraja novih tekst datoteka i za izmene sadraja postojeih tekst datoteka. On koristi ekran terminala za prikazivanje (dela) sadraja tekst datoteke. Na ekranu je prikazani sadraj organizovan u linije, iako tekst datoteka moe da ima drugaiju unutranju organizaciju. Ona, na primer, moe da bude organizovana kao niz znakova u kome se nalaze kodovi znakova sadraja datoteke, kao to su kodovi slova, cifara, posebnih znakova ili upravljakog znaka poetak linije. U ovako organizovanoj tekst datoteci istoj liniji ekrana pripadaju znakovi datoteke koji se nalaze: 1. izmeu njenog poetka i prve pojave pomenutog upravljakog znaka, 2. izmeu dve uzastopne pojave ovog upravljakog znaka i 3. izmeu poslednje pojave ovog upravljakog znaka i kraja tekst datoteke. Poto se ekranski prikaz i unutranja organizacija tekst datoteke razlikuju, u toku editiranja je neophodno da stanje na ekranu uvek odraava stanje u tekst datoteci. Aktivnost editora usmerava korisnik pomou posebnih editorskih komandi. Zadavanje editorskih komandi zahteva korienje ili posebnih dirki tastature, ili posebnih kombinacija obinih dirki tastature, ili posebnog pokazivakog ureaja. Kao komande editora mogu da se koriste i znakovi, ali je tada potrebno razlikovati znakove komandi od znakova sadraja tekst datoteke. Zato se u ovom sluaju uvode komandni i znakovni reim rada editora. U komandnom reimu rada, svi znakovi, pristigli sa tastature, predstavljaju znakove komandi. U znakovnom reimu rada, svi preuzeti znakovi postaju deo sadraja datoteke. Za prelazak iz jednog u drugi reim rada editora potrebna je posebna dirka tastature. U toku zadavanja znakova tekst datoteke, mogua su dva podreima rada editora. U jednom od njih (insert), pristigli znakovi se umeu izmeu postojeih znakova, a u drugom (overwrite), pristigli znakovi zamenjuju postojee znakove. Efekat, koji na ekranski prikaz i unutranju organizaciju ima unos znaka, zavisi od podreima rada i od unesenog znaka. Za ekranski prikaz tekst datoteke, kursor oznaava znakovnu poziciju ekrana od koje se prikazani sadraj tekst datoteke menja. Unos svakog znaka izaziva pomeranje kursora u sledeu znakovnu poziciju ekrana, namenjenu za naredni znak, i smetanje unesenog znaka u prethodnu poziciju kursora. Pri tome, ako se znakovi umeu, pomeranje kursora izaziva pomeranje svih znakova koji na ekranu dolaze iza njega. Kod unutranje organizacije tekst datoteke u obliku niza znakova, kursoru odgovara indeks elementa niza, poev od koga se sadraj elemenata ovog niza menja. Ako se znakovi umeu, za svaki pristigli znak se stvara mesto u nizu pomeranjem sadraja svih elemenata ovog niza za jedno mesto prema kraju niza, poev od indeksiranog

151

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

elementa. Zatim se ovaj indeks uvea za vrednost 1. Dok za unutranju organizaciju nema razlike izmeu pristizanja upravljakog znaka poetak linije i ostalih znakova, za ekranski prikaz, pristizanje pomenutog upravljakog znaka podrazumeva poseban postupak, jer tada dolazi do pomeranja kursora u prvu znakovnu poziciju naredne linije, uz odgovarajue pomeranje znakova koji slede iza njega. Editor se oslanja na drajver terminala koji za vreme aktivnosti editora ne interpretira znakove, ne vri njihov eho, niti editiranje, nego sve to stigne sa tastature preputa editoru. Radi podrke editora, drajver terminala, pored obinog, mora da ima i poseban, editorski reim rada.

6.2. ASEMBLER
Asembler je namenjen za analizu asemblerskog programa, sadranog u programskoj datoteci, radi prepoznavanja pojedinih naredbi i direktiva i radi generisanja njihovih mainskih oblika. U analizi programske datoteke, asembler preuzima znak po znak njenog sadraja i proverava da li je preuzeti znak u saglasnosti sa pravilima programskoj jezika koja opisuju obrazovanje asemblerskog programa. Ovakva analiza ima dva nivoa: leksiki (lexical) i sintaksni (syntax). Cilj leksike analize ili skeniranja (scanning) je prepoznavanje ispravnih rei u obliku nizova znakova koji ne sadre separatore, odnosno koji ne sadre ni razmake, ni upravljake znakove poetak linije, a obrazovani su po pravilima programskog jezika. Cilj sintaksne analize ili parsiranja (parsing) je prepoznavanje ispravnih reenica, odnosno redosleda rei, koje su obrazovane po pravilima programskog jezika. Leksiku i sintaksnu analizu usmeravaju pravila programskog jezika. Tako, na primer, pravilo program sugerie da niz znakova iz programske datoteke treba da zapone znakovima POETAK. Iza njih treba da slede razmak i znakovi ulazne labele. Naredno pravilo, telo, kao i sledea pravila, sugeriu da u nastavku treba da sledi upravljaki znak poetak linije i eventualno razmaci, pa ili malo slovo, kojim zapoinje labela, ili veliko slovo, kojim zapoinje ime naredbe ili direktive. Nastavak analize zavisi od prepoznatog sluaja i pravila koja se mogu dalje primeniti. Prema tome, asembliranje otpoinje traenjem, od poetka programske datoteke, prvog znaka, razliitog od separatora. To mora biti znak P, a iza njega moraju slediti preostali znakovi rei POETAK i bar jedan separator. Zatim se opet trai znak razliit od separatora. To mora biti malo slovo, a iza njega moraju slediti ostali znakovi ulazne lebele, kada ih ima (a koji moraju biti ili malo slovo ili cifra ili podvlaka) i bar jedan separator. Zatim se opet trai znak razliit od separatora. Ako se pronae malo slovo, tada je re o poetnom znaku labele, pa se trae dvotaka i separator, a svi pre njih pronaeni znakovi (koji moraju biti ili malo slovo ili cifra ili podvlaka), predstavljaju preostale znakove labele. Zatim se opet trai prvi znak, koji nije separator, a koji mora da bude veliko slovo, jer labela prethodi ili naredbi, ili direktivi. Nastavak asembliranja zavisi od pronaene naredbe ili direktive. U

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

152

prethodnom opisu analize programske datoteke se prepliu leksika i sintaksna analiza. Pojava neoekivanog znaka (rei) u bilo kom momentu asembliranja ukazuje na leksiku (sintaksnu) greku i tada sledi oporavak od ove greke. On se sastoji od pronalaenja prvog znaka od koga se moe uspeno nastaviti asembliranje. Oporavak od greke se obino svodi na traenje prve pojave upravljakog znaka poetak linije, jer se greka najee odnosi na asemblersku naredbu ili direktivu, sadranu u samo jednoj liniji programskog teksta. Nakon prepoznavanja naredbe, mogue je generisati njen mainski oblik. Za generisanje obavezne rei potrebno je raspolagati kodom naredbe. Kodovi naredbi se mogu preuzeti iz tabele naredbi (opcode table), iji elementi sadre imena i kodove naredbi. Slika 6.2.1 sadri prikaz tabele naredbi za procesor KONCEPT. Ime naredbe
DESNO DODAJ_1 I ILI LEVO NATRAG NE ODBIJ_1 ODUZMI ODUZMI_P POZOVI PREBACI_DR PREBACI_IR PREBACI_NR PREBACI_PR PREBACI_RD PREBACI_RI PREBACI_RP PREBACI_RR SABERI SABERI_P

Heksadecimalni Ime naredbe kod naredbe


34 30 14 15 33 F0 32 31 12 13 E0 60 80 50 70 90 B0 A0 40 10 11 SKOI SKOI_ZA_< SKOI_ZA_<= SKOI_ZA_!= SKOI_ZA_== SKOI_ZA_> SKOI_ZA_>= SKOI_ZA__< SKOI_ZA__<= SKOI_ZA__> SKOI_ZA__>= SKOI_ZA_M SKOI_ZA_N SKOI_ZA_NE_M SKOI_ZA_NE_N SKOI_ZA_NE_P SKOI_ZA_NE_V SKOI_ZA_P SKOI_ZA_V UPOREDI -

Heksadecimalni kod naredbe


C0 D2 D5 D1 D0 D4 D3 D6 D9 D8 D7 DA D0 DB D1 D3 DD D2 DC 20 -

Slika 6.2.1 Tabela naredbi Tabela naredbi je sortirana po imenima naredbi, radi breg, na primer binarnog, pretraivanja. Kod naredbe, koji je preuzet iz tabele naredbi, se upisuje u znaajniji bajt memorijske lokacije koja je rezervisana za generisanje obavezne re i. U preostali bajt se upisuju kodovi registara, koji se koriste u naredbi. Ako operand naredbe

153

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

zahteva dodatnu re, odgovarajui sadraj se upisuje u memorijsku lokaciju koja je rezervisana za generisanje dodatne rei. To ne predstavlja problem, ako se u dodatnu re smeta heksadecimalni broj koji je naveden u sastavu operanda. Meutim, ako je u sastavu operanda navedena labela, tada odreivanje njene adrese nuno prethodi popunjavanju odgovarajue dodatne rei. Za labele koje prethode naredbama, kao adresa labele slui adresa poetka odgovarajue naredbe, odnosno adresa memorijske lokacije u kojoj se nalazi obavezna re ove naredbe. U sluaju da labela prethodi direktivi, kao adresa labele slui adresa poetka ove direktive, odnosno adresa prve od memorijskih lokacija koje ova direktiva zauzima za smetanje podataka. Prema tome, kada se odredi adresa poetka naredbe ili direktive, kojoj prethodi labela, ta adresa se pridruuje labeli. Radi uvanja adresa labela zgodno je uvesti tabelu labela (symbol table), iji elementi sadre labele i njihove adrese. Tabela labela se dopunjava kada se nai e na definiciju labele, odnosno kada se naie na liniju u kojoj labela prethodi naredbi ili direktivi. I za tabelu labela je zgodno da bude sortirana po labelama, radi breg pretraivanja. Prema tome, kada zatreba adresa labele, dovoljno je pretraiti tabelu labela, radi pronalaenja labele i preuzimanja njene adrese. Meutim, problem se javlja kada se labela koristi pre definisanja, jer tada tabela labela ne sadri korienu labelu, pa se njena adresa ne moe preuzeti iz tabele labela. Ovaj problem se javlja kod skokova kod kojih upravljaka naredba prethodi ciljnoj naredbi. Ovakvi skokovi se nazivaju referenciranje unapred (forward references). Zbog referenciranja unapred, asembliranje se obino organizuje u dva prolaza. U prvom prolazu se analizira tekst asemblerskog programa, radi popunjavanja tabele labela. U drugom prolazu se isti tekst analizira jo jednom, radi generisanja mainskih oblika naredbi i direktiva. U prvom prolazu tabela labela se dopunjava im se naie na definiciju labele. Poto su za odreivanje adresa labela potrebne adrese poetaka naredbi ili direktiva kojima labele prethode, pre asembliranja se mora predvideti za koje memorijske lokacije se asemblira asemblerski program, odnosno u koje memorijske lokacije e biti smeten odgovarajui mainski program. Prirodno je pretpostaviti da se mainski program smeta od poetka logikog adresnog prostora. Adresi njegovog poetka odgovara, znai, nulta logika adresa. Ako se zna adresa poetka prve naredbe ili direktive, tada se adrese poetaka ostalih naredbi ili direktiva odreuju na osnovu injenice da je adresa poetka svake naredbe ili direktive uvek jednaka zbiru adrese poetka prethodne naredbe ili direktive i njene duine. Prema tome, ako se uvede posebna promenljiva broja lokacija (location counter) i inicijalizuje na nulu, tada ona sadri adresu poetka prve naredbe ili direktive. Nakon prepoznavanja prve naredbe ili direktive i njenog analiziranja, radi odreivanja njene duine, sledi uveavanje vrednost brojaa lokacija za tu duinu, pa on sadri adresu poetka druge naredbe ili direktive. Ako se isti postupak ponovi za svaku naredbu ili direktivu, u brojau lokacija e se uvek nalaziti adresa poetka naredbe ili direktive ija analiza je na redu. Na ovaj nain, kada se u toku analize naredbe ili

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

154

direktive otkrije definicija labele, tada njenu adresu sadri broja lokacija. Slika 6.2.2 sadri prikaz uzastopnih vrednosti brojaa lokacija pre analize svake naredbe iz asemblerskog programa koji rauna najvei zajedniki delioc. Asemblerski program
POETAK ulaz: PREBACI_NR PREBACI_NR ponovo: UPOREDI SKOI_ZA_== SKOI_ZA_< vee: ODUZMI SKOI manje: ODUZMI SKOI kraj: SKOI KRAJ ulaz %0,$12 %1,$10 %0,%1 kraj manje %0,%1 ponovo %1,%0 ponovo kraj

Broja lokacija
0 0 2 4 5 7 9 10 12 13 15 15

Slika 6.2.2 Vrednosti brojaa lokacija Slika 6.2.3 sadri prikaz tabele labela, nastale u toku prvog prolaza asemblera, za asemblerski program koji rauna najvei zajedniki delioc (Slika 6.2.2). Labela
kraj manje ponovo ulaz vee

Adresa
15 12 4 0 9

Slika 6.2.3 Tabela labela Mainski oblik programa, nastao u toku drugog prolaza asemblera, se naziva objektna sekvenca. Nju sainjavaju mainske naredbe. Slika 6.2.4 sadri prikaz tabele objektne sekvence, nastale u toku drugog prolaza asemblera, za asemblerski program koji rauna najvei zajedniki delioc (Slika 6.2.2).

155

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Adrese lokacija
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010

Tabela objektne sekvence Objektna Komentar sekvenca


POETAK 5000 000C 5010 000A 2001 D000 000F D200 000C 1201 C000 0004 1210 C000 0004 C000 000F ulaz: PREBACI_NR PREBACI_NR ponovo: UPOREDI SKOI_ZA_== SKOI_ZA_< vee: ODUZMI SKOI manje: ODUZMI SKOI kraj: SKOI KRAJ ulaz %0,$12 %1,$10 %0,%1 kraj manje %0,%1 ponovo %1,%0 ponovo kraj

(prve dve kolone u tabeli sadre heksadecimalne brojeve) Slika 6.2.4 Tabela objektne sekvence U toku asembliranja se otkrivaju ne samo leksike ili sintaksne, nego i semantike greke. Otkrivanje semantikih greaka je vezano za pretraivanje tabele naredbi i tabele labela. Na primer: 1. neuspeno pretraivanje tabele naredbi ukazuje na pogreno ime naredbe, 2. uspeno pretraivanje tabele labela u prvom prolazu asemblera, u toku dopune ove tabele, ukazuje na ponovno definisanje postojee labele, a 3. neuspeno pretraivanje tabele labela u drugom prolazu asemblera ukazuje na korienje nedefinisane labele. Objektnoj sekvenci odgovara mainski oblik programa, koji je nespreman za interakciju sa operativnim sistemom. Objektna sekvenca se smeta u objektnu datoteku, koja nije itljiva kao tekst datoteka, jer njeni svi bajti ne sadre kodove vidljivih znakova. Pored objektne sekvence, objektna datoteka sadri i adresu ulazne mainske naredbe od koje zapoinje izvravanje objektne sekvence. Ova ulazna adresa se naziva i ulazna taka (entry point) objektne sekvence. Ulazna adresa odgovara ulaznoj labeli (koja prethodi ulaznoj naredbi asembliranog programa).

6.3. MAKRO PRETPROCESOR


Makro pretprocesor je namenjen za analizu programske datoteke, radi prepoznavanja makro definicija, makro poziva i uslovnih direktiva i radi tekstualnih izmena sadraja ove datoteke. Kada je makro pretprocesor samostalan program,

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

156

tada on preuzima izvorni tekst asemblerskog programa iz ulazne programske datoteke, a smeta izmenjeni tekst asemblerskog programa u izlaznu programsku datoteku. Makro pretprocesiranje se zasniva na leksikoj i sintaksnoj analizi. Kada se u makro pretprocesiranju prepozna makro definicija, tada se njeno ime smesti u tabelu makro imena, a njeno telo se smesti u tabelu makro tela. U tabeli makro imena iza svakog imena makroa slede redni broj poetnog i redni broj zavrnog elementa tabele makro tela, u kojima se nalazi telo odgovarajue makro definicije. Pre smetanja u tabelu makro tela, telo makro definicije se izmeni tako to se svi parametri zamene njihovim rednim brojevima. Da bi se ovi redni brojevi razlikovali od brojeva prisutnih u telu makro definicije, redni brojevi parametara zapoinju (posebnim) znakom &. Slika 6.3.1 sadri prikaz tabele makro imena i tabele makro tela nakon prepoznavanja dve makro definicije.
IZBACI MAKRO PREBACI_RP DODAJ_1 KRAJ MAKRO PREBACI_PR DODAJ_1 KRAJ R (%0),R %0 R R,(%1) %1

UBACI

Tabela makro imena


IZBACI UBACI 1 3 2 4 1 2 3 4

Tabela makro tela


PREBACI_RP DODAJ_1 PREBACI_PR DODAJ_1 (%0),&1 %0 &1,(%1) %1

(druga i trea kolona tabele makro imena sadre odgovarajue redne brojeve, navedene u prvoj koloni tabele makro tela) Slika 6.3.1 Tabela makro imena i tabela makro tela Nakon prepoznavanja makro poziva, njegovi argumenti se smeste u tabelu argumenata, i to tako da se svaki argument nalazi u elementu iji indeks je jednak rednom broju odgovarajueg parametra. Na ovaj nain se uspostavlja korespondencija parametara i argumenata, koja olakava zamenu parametara argumentima. Slika 6.3.2 sadri prikaz tabele argumenata za makro poziv:
IZBACI %2

157

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

redni broj 1

Argument
%2

Slika 6.3.2 Tabela argumenata Po popunjavanju tabele argumenata, pretrauje se tabela makro imena, radi pronalaenja imena pozivanog makroa. Posredstvom imena se pristupa odgovarajuem telu makro definicije. Zatim se linija sa makro pozivom zameni linijama iz pronaenog tela, u kojima su prethodno redni brojevi parametara zamenjeni argumentima. Pre uvrtavanja linija tela makro definicije u izlaznu programsku datoteku, neophodno je svaku liniju ponovo analizirati, jer linije tela makro definicije mogu sadrati nove makro pozive ili makro definicije. Zbog toga makro pretprocesor sadri rekurzivne pozive. Rekurzivni pozivi su potrebni i zbog uslovnih direktiva. Makro pretprocesiranje ili prethodi prvom prolazu asembliranja ili se u njega ugrauje, ali tako da se asemblerska analiza primenjuje na linije koje su rezultat makro pretprocesiranja. Za makro pretprocesiranje karakteristine semantike greke su: poziv nedefinisanog makroa, ponovno definisanje postojeeg makroa i neslaganje broja argumenata makro poziva sa brojem parametara makro definicije. Otkrivanje ovih greaka se zasniva na korienju tabele makro imena, tabele makro tela i tabele argumenata.

6.4. LINKER
Zasebno asembliranje esto korienih asemblerskih potprograma je dragoceno, jer se tako izbegava ponavljanje asembliranja ovih potprograma zajedno sa asembliranjem programa koji ih pozivaju. Zasebnim asembliranjem programa i potprograma nastaju njihove zasebne objektne datoteke. Zadatak linkera je da zasebne objektne sekvence programa i potprograma, preuzete iz raznih objektnih datoteka, linkuje (povee) u jednu izvrnu sekvencu programa, radi stvaranja inicijalne slike procesa i njenog smetanja u izvrnu datoteku. U postupak linkovanja (povezivanja) linker ukljuuje i objektne sekvence sistemskih potprograma iz sistemske biblioteke, da bi omoguio interakciju korisnikih programa i operativnog sistema. PROBLEM RELOKACIJE Za svaku od zasebnih objektnih sekvenci, koje linker povezuje u jednu izvrnu sekvencu, u toku asembliranja je predvieno da poinje od nulte logike adrese. Nakon povezivanja, samo jedna objektna sekvenca poinje od nulte logike adrese. Adrese poetaka svih ostalih objektnih sekvenci su relocirane (pomerene) za broj memorijskih lokacija koje su zauzele prethodno smetene objektne sekvence. Ovaj broj memorijskih lokacija predstavlja konstantu relokacije za dotinu objektnu sekvencu. Znai svaka objektna sekvenca ima svoju konstantu

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

158

relokacije. Relokacija (relocation) moe da stvori probleme, kada mainske naredbe iz pomerenih objektnih sekvenci sadre u svojim dodatnim reima adrese, jer su te apsolutne adrese tane samo pod pretpostavkom da svaka objektna sekvenca poinje od nulte logike adrese. Apsolutne adrese objektne sekvence nisu tane nakon njene relokacije, jer i dalje pokazuju na lokacije koje je asembler predvideo za smetanje dotine objektne sekvence, a ne na lokacije u koje je objektna sekvenca stvarno dospela nakon linkovanja. Slika 6.4.1 sadri prikaz objektne sekvence, ije su apsolutne adrese oznaene strelicom. Adrese lokacija
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010

Objektna sekvenca
5000 000C 5010 000A 2001 D000 000F D200 000C 1201 C000 0004 1210 C000 0004 C000 000F

Tabela objektne sekvence Apsolutna Komentar adresa


POETAK ulaz: PREBACI_NR PREBACI_NR ponovo: UPOREDI <<vee: <SKOI_ZA_== SKOI_ZA_< ODUZMI SKOI manje: ODUZMI <<kraj: SKOI SKOI KRAJ ulaz %0,$12 %1,$10 %0,%1 kraj manje %0,%1 ponovo %1,%0 ponovo kraj

(prve dve kolone u tabeli sadre heksadecimalne brojeve) Slika 6.4.1 Tabela objektne sekvence sa oznaenim apsolutnim adresama Apsolutne adrese se javljaju kada se u dodatnoj rei naredbe nalazi adresa koja odgovara labeli. To se desi za operande upravljakih naredbi, kao i za neposredni, direktni i indeksni operand naredbi prebacivanja. Ako se objektna sekvenca (Slika 6.4.1) relocira, na primer, za jednu lokaciju, tada sve apsolutne adrese postaju netane. Ali ako se, nakon relokacije, svaka od prethodnih apsolutnih adresa uvea za vrednost konstante relokacije, koja u ovom primeru ima vrednost 1, apsolutne adrese opet postaju tane. Znai, problem relokacije (relocation problem) linker moe da rei korekcijom apsolutnih adresa, odnosno uveavanjem apsolutnih adresa za konstantu relokacije. Ovakva korekcija apsolutnih adresa se naziva statika relokacija (static relocation). Da bi linker znao gde se u objektnoj sekvenci nalaze apsolutne adrese, asembler mora da generie tabelu relokacije (relocation dictionary) sa logikim adresama lokacija

159

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

objektne sekvence, koje sadre apsolutne adrese. Tabela relokacije se nalazi u objektnoj datoteci zajedno sa objektnom sekvencom. Slika 6.4.2 prikazuje tabelu relokacije za primer objektne sekvence koju sadri Slika 6.4.1. Heksadecimalne adrese
0006 0008 000B 000E 0010

Slika 6.4.2 Tabela relokacije RELATIVNO ADRESIRANJE Problem relokacije ne postoji, ako ne postoje apsolutne adrese. To se moe postii, na primer, kod upravljakih naredbi, ako se u njihovoj dodatnoj rei navede meusobna udaljenost upravljake i ciljne naredbe, umesto apsolutne adrese ciljne naredbe. Meusobna udaljenost upravljake i ciljne naredbe se izraava kao razlika adresa dodatne rei upravljake naredbe i obavezne rei ciljne naredbe. Ova udaljenost predstavlja relativnu adresu ciljne naredbe u odnosu na upravljaku naredbu. Iz relativne adrese se moe odrediti apsolutna adresa ciljne naredbe, kada se relativna adresa sabere sa sadrajem programskog brojaa koga programski broja ima prilikom dobavljanja relativne adrese iz dodatne rei. Ovakvo adresiranje se naziva relativno adresiranje (PC-relative addressing). Relativno adresiranje predstavlja oblik indeksnog adresiranja, u kome relativna adresa predstavlja indeks i u kome se podrazumeva korienje programskog brojaa umesto registra opte namene. Nakon uvoenja relativnog adresiranja, podrazumeva se da se ono koristi u upravljakim naredbama. To ima uticaja na njihove mikro-programe, pa tako, na primer, mikro-program obavljanja sa relativnim adresiranjem za 12. tip naredbi (SKOI) izgleda: 1. ciklus: programski broja adresne linije (P2) 1 (P41) linije podataka pomoni registar (P3) 2. ciklus programski broja registar 1. podatka (P2, P37, P42) 3. ciklus pomoni registar registar 2. podatka (P4, P37, P43) 4. ciklus: saberi (P52) linije podataka programski broja (P1) Slika 6.4.3 prikazuje primer objektne sekvence u kojoj se podrazumeva korienje relativnog adresiranja za upravljake naredbe.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

160

Adrese lokacija
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010

Objektna sekvenca
5000 000C 5010 000A 2001 D000 0009 D200 0004 1201 C000 FFF9 1210 C000 FFF6 C000 FFFF

Tabela objektne sekvence Relativna Komentar adresa


POETAK ulaz: PREBACI_NR PREBACI_NR ponovo: UPOREDI <<vee: <SKOI_ZA_== SKOI_ZA_< ODUZMI SKOI manje: ODUZMI <<kraj: SKOI SKOI KRAJ ulaz %0,$12 %1,$10 %0,%1 kraj manje %0,%1 ponovo %1,%0 ponovo kraj

(prve dve kolone u tabeli sadre heksadecimalne brojeve) Slika 6.4.3 Tabela objektne sekvence sa relativnim adresama, koje su oznaene strelicama Relativne adrese su oznaeni celi brojevi u komplement 2 predstavi. To znai, kada ciljna naredba sledi posle upravljake naredbe, relativna adresa je pozitivna. Na primer, relativne adrese u lokacijama sa logikim adresama 616 i 816 (Slika 6.4.3) su pozitivne. Kada ciljna naredba prethodi upravljakoj naredbi, relativna adresa je negativna. Na primer, relativne adrese u lokacijama sa logi kim adresama B16, E16 i 1016 (Slika 6.4.3) su negativne. Na relativne adrese ne utie relokacija objektne sekvence, jer se relokacijom ne menja relativni poloaj mainskih naredbi u objektnoj sekvenci. Zato relativne adrese ne izazivaju problem relokacije. Problem relokacije ne izazivaju ni apsolutne adrese iz objektnih sekvenci koje nisu relocirane. PROBLEM SPOLJANJIH REFERENCI Zasebna asembliranja izazivaju ne samo problem relokacije, nego i problem spoljanjih referenci (external reference problem). Spoljanje reference se javljaju kada se iz programa ili potprograma poziva zasebno asembliran potprogram, jer se tada referencira (koristi) spoljanja labela koja nije definisana u programu ili potprogramu pozivaocu, nego u pozivanom potprogramu. Takve spoljanje labele asembler oznaava kao nedefinisane labele. Poto adrese spoljanjih labela nisu

161

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

poznate u toku asembliranja, kao njihova adresa koristi se 0. Da bi linker mogao da koriguje ove adrese, asembler formira tabelu nedefinisanih labela (external reference table). Njeni elementi sadre nedefinisane (odnosno spoljanje) labele i logike adrese lokacija koje treba korigovati pomou adresa ovih spoljanjih labela. I ova tabela ulazi u sastav objektne datoteke. Pomou tabele nedefinisanih labela, linker moe da utvrdi koje lokacije iz objektne sekvence treba korigovati, kao i adrese kojih spoljanjih labela treba koristiti za ovu korekciju. Ulogu spoljanjih labela imaju ulazne labele. Da bi linker mogao da rei problem spoljanjih referenci, asembler mu posredstvom objektne datoteke prosleuje tabelu ulaznih labela (entry point table). Njen element sadri ulaznu labelu i njenu adresu. Slika 6.4.4 sadri objektnu sekvencu programa koji poziva nezavisno asemblirani potprogram nzd, radi odreivanja najveeg zajednikog delioca brojeva 12 i 10. Argumenti se prosleuju pozivanom potprogramu posredstvom registara %1 i %2. Da bi bio jednostavniji, ovaj program ne koristi povratnu vrednost potprograma nzd i zavrava se beskonanom petljom. Uz objektnu sekvencu ovog programa su navedene tabela relokacije, tabela nedefinisanih labela i tabela ulaznih labela. Adrese lokacija
0000 0001 0002 0003 0004 0005 0006 0007

Objektna sekvenca
5010 000C 5020 0OOA E0F0 0000 C000 FFFE

Tabela objektne sekvence Nedefinisana Komentar adresa


POETAK primer: PREBACI_NR PREBACI_NR <kraj: POZOVI SKOI KRAJ primer %1,$12 %2,$10 nzd kraj

Tabela relokacije
-

Tabela nedefinisanih labela


nzd primer 0005 0000

Tabela ulaznih labela (prve dve kolone u tabeli objektne sekvence, kolona u tabeli relokacije i druga kolona u tabelama nedefinisanih i ulaznih labela sadre heksadecimalne brojeve) Slika 6.4.4 Tabela objektne sekvence i tabele relokacije, nedefinisanih i ulaznih labela programa

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

162

U objektnoj sekvenci koju sadri Slika 6.4.4 potrebno je korigovati lokaciju sa logikom adresom 516, na koju pokazuje strelica. Ova lokacija treba da sadri relativnu adresu koja se odreuje na osnovu adrese spoljanje labele nzd. Slika 6.4.5 sadri objektnu sekvencu potprograma nzd koji odreuje najvei zajedniki delioc neoznaenih celih brojeva navedenih u registrima %1 i %2. Najvei zajedniki delioc predstavlja povratnu vrednost i prosleuje se posredstvom registra %0. Uz objektnu sekvencu su navedene tabela relokacije, tabela nedefinisanih labela i tabela ulaznih labela. Adrese lokacija
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C

Tabela objektne sekvence Objektna Komentar sekvenca


2012 D000 0009 D200 0004 1212 C000 FFF9 1221 C000 FFF6 4001 F0F0 nzd: POETAK UPOREDI SKOI_ZA_== SKOI_ZA_< vee: ODUZMI SKOI manje: ODUZMI SKOI kraj: PREBACI_RR NATRAG KRAJ nzd %1,%2 kraj manje %1,%2 nzd %2,%1 nzd %0,%1

Tabela relokacije
-

Tabela nedefinisanih labela


-

Tabela ulaznih labela


nzd 0000

(prve dve kolone u tabeli objektne sekvence, kolona u tabeli relokacije i druga kolona u tabelama nedefinisanih i ulaznih labela sadre heksadecimalne brojeve) Slika 6.4.5 Tabela objektne sekvence i tabele relokacije, nedefinisanih i ulaznih labela potprograma

163

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

OBRAZOVANJE IZVRNE SEKVENCE U toku rada linker preuzima objektne sekvence i sve tabele iz objektnih datoteka koje su obuhvaene linkovanjem. On tada odredi adrese poetaka objektnih sekvenci na osnovu njihovih duina i formira tabelu objektnih sekvenci (object module table). U ovoj tabeli se nalaze ulazne labele objektnih sekvenci, duine objektnih sekveci i adrese njihovih poetaka. Slika 6.4.6 sadri tabelu objektnih sekvenci za program koga sadri Slika 6.4.4 i potprogram koga sadri Slika 6.4.5. Ulazna labela objektne sekvence
primer nzd

Duina objektne sekvence


8 13

Adresa poetka objektne sekvence


0000 0008

(druga kolona sadri decimalne, a trea heksadecimalne brojeve) Slika 6.4.6 Tabela objektnih sekvenci Adresa poetka objektne sekvence je ujedno njena konstanta relokacije, pa se pomou nje moe izvriti relokacija svih adresa iz njenih tabela. Nakon relokacije, nisu se promenile tabele nedefinisanih i ulaznih labela programa (Slika 6.4.4), jer je konstanta relokacije programa jednaka nuli, dok se adresa labele nzd iz tabele ulaznih labela potprograma (Slika 6.4.5) uveala za vrednost 8, jer je tolika konstanta relokacije potprograma. Pomou odgovarajuih konstanti relokacije se, zatim, vri relokacija apsolutnih adresa pojedinih objektnih sekvenci, radi reavanja problema relokacije. Da bi se reio problem spoljanjih referenci, sve tabele ulaznih labela se spajaju u jednu tabelu spoljanjih labela (global symbol table). Slika 6.4.7 sadri tabelu spoljanjih labela za program koga sadri Slika 6.4.4 i potprogram koga sadri Slika 6.4.5. Tabela spoljanjih labela
primer nzd 0000 0008

(druga kolona u tabeli sadri heksadecimalne brojeve) Slika 6.4.7 Tabela spoljanjih labela Za svaku od labela iz tabela nedefinisanih labela se pronalazi njena adresa u tabeli spoljanjih labela. Ova adresa se koristi za korekciju lokacija odgovarajue objektne sekvence. Ako neka od tabela nedefinisanih labela sadri labelu koja ne

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

164

postoji u tabeli spoljanjih labela, re je o nedefinisanoj labeli, odnosno o greci koja se otkriva u toku linkovanja. Nakon reavanja problema relokacije i problema spoljanjih referenci, objektne sekvence se mogu spojiti u jednu izvrnu sekvencu. Slika 6.4.8 sadri primer izvrne sekvence za program koga sadri Slika 6.4.4 i potprogram koga sadri Slika 6.4.5. Adrese lokacija
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014

Tabela izvrne sekvence Izvrna Komentar sekvenca


5010 000C 5020 0OOA E0F0 0003 C000 FFFE 2012 D000 0009 D200 0004 1212 C000 FFF9 1221 C000 FFF6 4001 F0F0 primer: PREBACI_NR PREBACI_NR POZOVI kraj: nzd: SKOI UPOREDI SKOI_ZA_== SKOI_ZA_< vee: ODUZMI SKOI manje: ODUZMI SKOI kraj: PREBACI_RR NATRAG %1,$12 %2,$10 nzd kraj %1,%2 kraj manje %1,%2 nzd %2,%1 nzd %0,%1

(prve dve kolone u tabeli sadre heksadecimalne brojeve) Slika 6.4.8 Tabela izvrne sekvence Lokacija sa logikom adresom 5 izvrne sekvence (Slika 6.4.8) sadri relativnu adresu 3, koja je odreena kao vrednost izraza: 8-5 Adresa 8 odgovara obaveznoj rei ciljne naredbe, a adresa 5 odgovara dodatnoj rei upravljake naredbe. Rad linkera se obino obavlja u dva prolaza. Prvi prolaz je namenjen za formiranje tabele objektnih sekvenci, za relokaciju tabela i za formiranje tabele spoljanjih labela. Drugi prolaz je posveen reavanju problema relokacije i problema spoljanjih referenci i stvaranju izvrne sekvence. Redosled objektnih sekvenci u izvrnoj sekvenci zavisi od redosleda u kome se navode objektne

165

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

datoteke u komandi kojom se pokree linker. Ulazna adresa izvrne sekvence je jednaka ulaznoj adresi njene prve objektne sekvence.

6.5. LOUDER
Izvravanju programa obavezno prethodi njegovo punjenje, koje, izmeu ostalog, obuhvata prepisivanje njegove izvrne sekvence iz izvrne datoteke u radnu memoriju, radi formiranja slike procesa. Pre izvravanja programa neophodno je pripremiti sadraje graninog i baznog registra, radi pretvaranja logikih adresa u fizike. Postupak pretvaranja logikih adresa u fizike se naziva i dinamika relokacija (dynamic relocation), jer sadraj baznog registra predstavlja konstantu relokacije, koja se u toku izvravanja dinamiki dodaje na logike adrese da bi se formirale fizike adrese. Louder se javlja kao zaseban program, kada se, na primer, izvrni programi prebacuju sa razvojnog raunara na ciljni raunar, koji nema sistemske programe.

6.6. DIBAGER
Dibager je namenjen za omoguavanje nadgledanja izvravanja programa, radi praenja izmena sadraja lokacija (promenljivih) i otkrivanja ta izaziva pojavu neoekivanih (pogrenih) sadraja u njima. Bez dibagera, praenje izvravanja programa se svodi na prikazivanje sadraja promenljivih koje su odabrane unapred, pre izvravanja programa. Sa dibagerom je mogue prikazivati sadraje bilo koje promenljive, odabrane u toku izvravanja programa. Dibagiranje se zasniva na mogunosti prekidanja izvravanja programa ili pre izvravanja svake, ili samo pre izvravanja odreene, dinamiki odabrane asemblerske naredbe, i to radi aktiviranja dibagera. Po aktiviranju, dibager omoguuje pregledanje zateenih sadraja memorijskih lokacija, registara opte namene i nekih registara posebne namene, na primer, programskog brojaa ili status registra. Dibagiranje se oslanja na poseban korani reim rada procesora (single step). Procesor se nalazi u ovom reimu rada, kada poseban bit traga (trace bit) status registra (na primer, bit SR6 kod procesora KONCEPT) sadri vrednost 1. Ovaj bit se zove bit traga, jer omoguuje praenje traga izvravanja programa. U koranom reimu rada procesora se podrazumeva da dobavljanju svake naredbe prethodi izvravanje mikro-programa izuzetka, radi aktiviranja dibagera koji ima oblik obraivaa izuzetka. Na taj nain, korani reim rada omoguuje nadgledanje izvravanja svake naredbe, kao i praenje izmena sadraja interesantnih lokacija. Za dibagiranje je zgodno da postoji i posebna naredba zamke (trap), ije izvravanje se svodi na izvravanje mikro-programa izuzetka. Izvravanje ove naredbe dovodi do aktiviranja dibagera i bez koranog reima rada procesora. Ovakva naredba ubrzava izvravanje dibagiranog programa, jer omoguuje da aktiviranje dibagera prethodi izvravanju samo pojedinih, a ne svih naredbi.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

166

Dibager se aktivira pre izvravanja odabrane naredbe, ako se, na primer, njen mainski oblik privremeno, u toku dibagiranja, zameni mainskim oblikom naredbe zamke. Podrazumeva se da, odmah po svom aktiviranju, dibager umesto mainskog oblika naredbe zamke vrati prethodno sauvani (zamenjeni) mainski oblik odabrane naredbe. Umesto privremenih izmena izvrnog oblika programa, dibager moe da smesti adresu odabrane naredbe u neki od posebnih dibagerskih registara. Tada do aktiviranja dibagera dolazi kada sadraj programskog brojaa postane jednak sadraju jednog od dibagerskih registara. Nadgledanje izvravanja programa usmerava korisnik pomou (znakovnih) komandi, upuenih dibageru. Ove komande prevode procesor u korani reim rada, postavljaju zamku na odreeno mesto u programu, prikazuju (uz odgovarajue interpretiranje) sadraj lokacija, ali i zavravaju izvravanje programa.

6.7. PITANJA
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ta je namena editora? ta karakterie editor? ta je namena asemblera? Koje poslove obavlja asembler? ta sadri tabela naredbi? Kada nastane tabela naredbi? ta sadri tabela labela? Kada nastane tabela labela? ta sadri broja lokacija? ta sadri tabela labela (objasniti na primeru)? Koja adresa odgovara labeli x za asemblerske naredbe:
SABERI %0,%1 NE %0 x: LEVO %0

12. 13. 14. 15. 16. 17. 18. 19. 20. 21.

ije mainske naredbe poinju od adrese 0? Koje greke se javljaju u asembliranju? ta je namena makro pretprocesora? Koje tabele formira makro pretprocesor? ta je namena linkera? Koje probleme reava linker? ta izaziva pojavu problema relokacije? ta karakterie reavanje problema relokacije? ta izaziva pojavu problema spoljanjih referenci? U mainskim oblicima kojih naredbi se javljaju apsolutne adrese? Koje tabele su potrebne za reavanje problema spoljanjih labela?

167

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

22. Koliko apsolutnih adresa imaju mainske naredbe koje odgovaraju asemblerskim naredbama:
SABERI %0,%1 NE %0 x: LEVO %0

23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.

(podrazumeva se da ne postoji relativno adresiranje)? ta karakterie relativno adresiranje? Koje tabele formira asembler? Koje tabele formira linker? Ko obavlja statiku relokaciju? Ko obavlja dinamiku relokaciju? ta radi linker u 1. prolazu? ta radi linker u 2. prolazu? ta radi asembler u 1. prolazu? ta radi asembler u 2. prolazu? Koji sistemski programi imaju 1 prolaz? Koji sistemski programi imaju 2 prolaza? ta je namena loudera? ta je namena dibagera? ta je potrebno za rad dibagera? ta sadri status registar?

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

168

7. EVOLUCIJA ARHITEKTURE RAUNARA


7.1. PRECIZIRANJE POJMA ARHITEKTURE RAUNARA
Arhitektura raunara se bavi arhitekturom naredbi i organizacijom i izvedbom raunara. Zadatak arhitekture naredbi je da potpuno opie procesor sa stanovita korienja. Ona opisuje: 1. skup naredbi, 2. vrste operanada, 3. adresiranja, 4. adresni prostor, 5. memorijske lokacije i 6. registre raunara. Skup naredbi sadri: 1. naredbe prenosa podataka, 2. naredbe za rukovanje bitima, 3. aritmetike naredbe, 4. upravljake naredbe, 5. sistemske naredbe (kao to je, na primer, naredba sistemskog poziva) i 6. ulazno-izlazne naredbe. Vrste operanada odreuju predstave vrednosti podranih tipova podataka, kao to su: 1. celi tip, 2. realni tip (floating-point), 3. znakovni tip i 4. logiki tip. U okviru adresiranja opisuju se naini pristupanja operandima, koji su: 1. ili neposredno deo naredbe, 2. ili se nalaze direktno u registrima i memorijskim lokacijama, 3. ili im se pristupa posredstvom adresa, smetenih u registre i memorijske lokacije, uz eventualno automatsko modifikovanje pomenutih adresa. Za adresni prostor su bitne vrste i raspon adresa memorijskih lokacija, za memorijske lokacije je bitna njihova veliina, a za registre su bitni njihov broj, veliina i namena. Organizacija raunara se bavi principijelnim ostvarenjem funkcionalnosti raunara, odnosno utvrivanjem vrsta organizacionih komponenti raunara, njihovih osobina i naina njihovog kombinovanja. Kao organizacione komponente raunara javljaju se procesor, radna memorija, masovna memorija, kontroleri, ulazni i izlazni ureaji, sabirnica, ali i operativni sistem ili sistemski programi, poput kompajlera.

169

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Izvedba raunara obuhvata reavanje tehnolokih i proizvodnih problema, kao to su, na primer, problemi projektovanja i proizvodnje logikih kola, ali i problemi projektovanja i proizvodnje sistema za napajanje ili sistema za rashlaivanje.

7.2. POKRETAI RAZVOJA ARHITEKTURE RAUNARA


Arhitektura raunara uvek odraava njegovu namenu, ali tako da upotrebljena tehnologija bude iskoriena na najcelishodniji nain. Zbog toga je, prilikom oblikovanja arhitekture raunara, izbor tehnikih reenja uvek podreen optimizaciji, iji cilj je ostvarenje najpovoljnijeg odnosa funkcionalnosti raunara i njegovih proizvodnih trokova (koji predstavljaju priblino dve treine njegove maloprodajne cene). Proizvodni trokovi raunara se sastoje od direktnih trokova, nastalih u toku proizvodnih aktivnosti preduzea i od indirektnih trokova, nastalih u toku preostalih (neproizvodnih) aktivnosti preduzea. Direktni trokovi su vezani za pravljenje svakog raunara i obuhvataju trokovi komponenti, trokove rada, trokove garancije i slino. U indirektne trokove spadaju trokovi istraivanja i razvoja, trokovi marketinga, trokovi prodaje, trokovi odravanja proizvodnih pogona, ali i porezi, dobit, kamate na kredite i slino. Iako indirektni trokovi nisu direktno vezani za pravljenje pojedinih raunara, oni optereuju cenu svakog raunara, jer se ravnomerno rasporeuju po svakom proizvedenom raunaru. Sniavanje cene raunara je vezano za smanjenje proizvodnih trokova. Obaranje direktnih proizvodnih trokova je posledica tehnolokog napretka koji izazove sniavanje cene komponenti ili omogui vii stepen automatizacije proizvodnje i tako dovede do smanjenja trokova rada. Nia cena raunara stvara uslove za njegovu primenu u novim oblastima, a tada, zbog irenja trita, dolazi do poveanja proizvodnje raunara. Znaajnije poveanje proizvodnje ima dvostruke posledice. S jedne strane, ono uzrokuje dodatno sniavanje cene, jer se indirektni trokovi raspodeljuju na vei broj proizvedenih raunara, pa manje optereuju cenu svakog od njih. Sa druge strane, ono obezbeuje dodatna sredstva za istraivanje i razvoj, jer smanjenje udela indirektnih trokova u ceni pojedinog raunara ne mora biti proporcionalno poveanju proizvodnje. Pomenuto dodatno sniavanje cene raunara i tehnoloki napredak, izazvan intenziviranjem istraivanja i razvoja, dovode do novog ciklusa irenja trita raunara sa ve opisanim posledicama. Opisana pozitivna povratna sprega izmeu sniavanja cena i proirenja trita raunara predstavlja snaan zamajac razvoja. Pojava prvog elektronskog raunara opte namene, podesnog ne samo za numerike, nego i za poslovne obrade, predstavlja polaznu taku prethodno opisane razvojne povratne sprege, zasnovane na brzom napredovanju poluprovodnikih tehnologija. Ova povratna sprega je uzrokovala buran razvoj raunara, odnosno dovela je do brze evolucije arhitekture raunara. U ovoj knjizi se, zato, pojam raunar odnosi na elektronski raunar opte namene, a evolucija arhitekture

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

170

raunara se prati od pojave prvog elektronskog raunara opte namene, proizvedenog za trite.

7.3. PERIODI EVOLUCIJE


Razvoj arhitekture raunara je prolazio kroz vie evolucionih faza. One se vezuju za periode dominacije pojedinih poluprovodnikih tehnologija, iji razvoj je izazvao evoluciju arhitekture raunara. Evolucione faze priblino obuhvataju prelaze izmeu decenija, raunajui od pojave prvog elektronskog raunara opte namene, proizvedenog za trite. One predstavljaju osnovu za podelu raunara u generacije, pri emu se smatra da raunari, proizvedeni u okviru jedne evolucione faze, pripadaju istoj generaciji. Podela raunara u generacije je uslovna, jer su u svakoj od evolucionih faza postojala preklapanja izmeu dominantne (zrele) i nastupajue poluprovodnike tehnologije (iji vrhunac je tek nailazio). Prema tome, u okviru istih generacija raunara meali su se uticaji raznih poluprovodnikih tehnologija. Pored toga, usavravanje svake od ovih tehnologija se na slian nain odraavalo na arhitekturu raunara, to znai da su razne generacije raunara prolazile kroz sline razvojne cikluse.

7.4. PITANJA
1. 2. 3. 4. 5. 6. 7. 8. ta opisuje arhitektura naredbi? Koje vrste naredbi sadri skup naredbi? Koje tipove podataka podrava arhitektura naredbi? ta karakterie operande? Koje organizacione komponente raunara postoje? ta su direktni proizvodni trokovi raunara? ta su indirektni proizvodni trokovi raunara? Na emu se temelji pozitivna povratna sprega koja predstavlja zamajac razvoja raunara? 9. Za ta se vezuju evolucione faze arhitekture raunara?

171

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

8. EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 1950. GODINE


8.1. SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 1950. GODINE
U 1951. godini na trite Sjedinjenih Amerikih Drava isporuen je prvi elektronski raunar opte namene, nazvan UNIVAC I (UNIVersal Automatic Computer). Njegovi autori J. Presper Eckert i John W. Mauchly su prethodno predvodili grupu sa Pensilvanija univerziteta, koja je 1946. godine zavrila prvi elektronski raunar opte namene. Ovaj raunar je nazvan ENIAC (Electronic Numerical Integrator And Calculator). Njegova radna memorija je sadrala samo obraivane podatke, dok su programi runo zadavani posredstvom upravljake table. Nameru prethodno pomenute grupe da napravi raunar sa radnom memorijom predvienom za smetanje i programa i podataka opisao je 1945. godine njen lan John von Neumann. On je opisani raunar nazvao EDVAC (Electronic Discrete Variable Automatic Computer). U 1946. godini John von Neumann je objavio opis usavrene verzije raunara sa radnom memorijom predvienom za smetanje i programa i podataka, nazvanog IAS (po nazivu institucije Institute for Advanced Study Prinston univerziteta, u okviru koje je pomenuti opis nastao). U ova dva rada su izloeni sutinski principi funkcionisanja elektronskih raunara opte namene sa radnom memorijom predvienom za smetanje i programa i podataka. Prvi ovakav (u punom obimu funkcionalan) raunar, pod imenom EDSAC (Electronic Delay Storage Automatic Calculator), napravila je u Velikoj Britaniji 1949. godine grupa sa Kembrid univerziteta, koju je predvodio Maurice Wilkes. U 1953. godini IBM (International Business Machines Corporation, tada vodei proizvoa poslovne opreme, prisutan na tritu od 1896. godine) isporuio je na trite Sjedinjenih Amerikih Drava svoj prvi elektronski raunar opte namene pod imenom IBM 701. Prethodno, u 1944. godini, IBM je napravio prvi elektro-mehaniki raunar opte namene, nazvan MARK I. Idejni tvorac projekta ovoga, kao i kasnije napravljena 3 raunara, nazvana MARK II, MARK III i MARK IV, je Howard Aiken sa Harvard univerziteta. Poslednja dva modela su bili elektronski raunari opte namene sa razdvojenim radnim memorijama za programe i za podatke. Ovakav pristup je nazvan harvardska arhitektura. Slika 8.1.1 sadri prikaz hronologije vanih dogaaja za razvoj raunara.
MARK I EDVAC ENIAC EDSAC UNIVAC I IBM 701

1944

1945

1946

1949

1951

1953

Slika 8.1.1 Hronologija vanih dogaaja za razvoj raunara

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

172

ARHITEKTURA RAUNARA PRVE GENERACIJE UNIVAC I i IBM 701 pripadaju raunarima prve generacije. Slika 8.1.2 sadri prikaz tipine organizacije raunara prve generacije.

ULAZNI UREAJ

RADNA MEMORIJA

PROCESOR

MASOVNA MEMORIJA

IZLAZNI UREAJ

Slika 8.1.2 Tipina organizacija raunara prve generacije Upravljake, adresne i linije podataka povezuju procesor i preostale organizacione komponente raunara prve generacije (Slika 8.1.2). Procesori prve generacije raunara su izraivani u tehnologiji elektronskih cevi (elektronska cev trioda je napravljena 1906. godine). Radne memorije su zasnivane na raznim tehnologijama, pa su tako koriene, na primer, i elektrostatike radne memorije, kod kojih su naelektrisanja taaka na ekranu katodne cevi predstavljala binarne vrednosti. Jedinice magnetnih traka su koriene kao masovne memorije. itai buenih traka ili kartica su predstavljali ulazne ureaje, a na mestu izlaznih ureaja su se nalazili buai traka i kartica, kao i tampai. Centralni poloaj procesora u organizaciji je imao za posledicu da bez njegovog uea nije bio mogu prenos podataka izmeu bilo koje dve organizacione komponente raunara prve generacije. Za prenos podataka izmeu radne memorije, sa jedne strane, i ulaznih i izlaznih ureaja, odnosno, masovne memorije, sa druge strane, postojale su posebne ulazno-izlazne naredbe. Radi njih, je postojao ulazno-izlazni adresni prostor, kome su pripadale samo lokacije koje su predstavljale ulazne i izlazne ureaje, odnosno jedinice masovne memorije. Pored ulazno-izlaznog adresnog prostora, postojao je i memorijski adresni prostor, kome su pripadale samo lokacije radne memorije. Prema tome, ista adresa je oznaavala dve lokacije, zavisno od toga da li je interpretirana kao adresa memorijskog ili adresa ulazno-izlaznog adresnog prostora. Druga interpretacija adresa je bila mogua samo u okviru ulazno-izlaznih naredbi.

173

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Raunari prve generacije su bili namenjeni prevashodno za numerike proraune, kao to su, na primer, raunanja tablica trigonometrijskih funkcija. Ipak, oni nisu podravali aritmetiku pomine take (floating-point arithmetic), jer je ona bila suvie komplikovana za tehnologiju elektronskih cevi. Oni, takoe, nisu podravali ni potprograme, a ni rukovanje elementima nizova. Identina obrada uzastopnih elemenata niza je zahtevala ponavljanje modifikacija mainskih naredbi programa, radi pripremanja u mainskim naredbama adresa lokacija radne memorije sa vrednostima pojedinih elemenata. Raunari prve generacije su korieni na interaktivan nain, pri emu su programeri, posredstvom upravljake table, bili u neposrednoj komunikaciji sa raunarom za vreme izvravanja svojih programa. Programeri su u poetku bili upueni na korienje mainskog jezika, a kasnije i na korienje asemblerskog jezika. Ve kod raunara prve generacije brzinu procesora, odnosno broj izvrenih mainskih naredbi u jedinici vemena, ograniavala je samo raspoloiva tehnologija, dok je brzinu radne memorije, odnosno broj pristupa njenim lokacijama u jedinici vremena ograniavala cena raspoloivih tehnologija. Primena najskuplje tehnologije je bila i ostala prihvatljiva kod procesora, ali ne i kod radne memorije, jer je procesor sastavljen od neuporedivo manje komponenti nego radna memorija. To znai da se ve kod raunara prve generacije javila ozbiljna disproporcija izmeu brzine procesora i brzine radne memorije (da se i ne pominje disproporcija brzine procesora i brzine ostalih, mehaniki zasnovanih organizacionih komponenti raunara prve generacije). MANE RAUNARA PRVE GENERACIJE Ozbiljna mana raunara prve generacije je bila njihova slaba iskorienost. Nju su uzrokovali: 1. interaktivni nain rada (dok je programer ispravljao greke u svom programu, raunar je bio uglavnom neiskorien), 2. modifikovanje programa u toku njihovog izvravanja (to je zahtevalo punjenje programa pre svakog novog izvravanja) i 3. uee procesora u prenosu svakog podatka izmeu bilo koja dve organizacione komponente raunara prve generacije (u toku ega je, zbog radnog ekanja, procesorsko vreme neracionalno korieno).

8.2. PITANJA
1. ta je karakterisalo prenos podataka izmeu radne i masovne memorije kod raunara prve generacije? 2. Koliko adresnih prostora postoji kod raunara prve generacije? 3. ta je karakterisalo raunare prve generacije? 4. Koju manu su imali raunari prve generacije

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

174

9. EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 1960. GODINE


9.1. SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 1960. GODINE
Tehnoloku osnovu raunara druge generacije su inili diskretni poluprovodnici i magnetne jezgrice (magnetic core). Tranzistori su napravljeni 1948. godine, a magnetne jezgrice su napravljane 1949. godine. DIGITALNA KOLA Diskretni poluprovodnici su istisnuli elektronske cevi, jer su imali niu cenu, bili manji, bri i pouzdaniji, a imali su i manju potronju energije i manje toplotno zraenje. Diskretni poluprovodnici su korieni za izvedbu digitalnih kola (gate), sposobnih da raunaju vrednosti logikih funkcija. Slika 9.1.1 prikazuje osnovna digitalna kola not, nand i nor koja odgovaraju logikim funkcijama not (negacija), nand (negirano logiko i) i nor (negirano logiko ili). Ispod imena ovih kola su nacrtani njihovi simboli.

5V

5V

5V

I U U1

I U1 U2

U2 not U I U1 U2 nand I U1 U2 nor I

Slika 9.1.1 Osnovna digitalna kola

175

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Za prvo od digitalnih kola (Slika 9.1.1) vai da, kada se ulazni napon U (doveden na bazu tranzistora) povea sa 0V na 5V, tranzistor provede, pa obori izlazni napon I sa 5V na 0V. Takoe vai i obrnuto. Tako se ulazna logika vrednost tano (koju predstavlja napon od 5 volti) invertuje u izlaznu logiku vrednost netano (koju predstavlja napon od 0 volti) i obrnuto. Na analogan nain funkcioniu i preostala dva digitalna kola. Kombinovanjem osnovnih logikih kola mogu se izvesti sloene logike funkcije. RADNA MEMORIJA Magnetne jezgrice su istisnule do tada koriene memorijske tehnologije, jer su omoguile pravljenje veih i pouzdanijih radnih memorija po nioj ceni. U tehnologiji magnetnih jezgrica binarne vrednosti su predstavljala dva stanja magnetizacije prstena, napravljenog od magnetnog materijala, kroz koji su prolazili elektrini provodnici. Slika 9.1.2 sadri prikaz principijelne organizacije radne memorije, zasnovane na magnetnim jezgricama.
bit1 bit2

re1

re2

re3

Slika 9.1.2 Principijelna organizacija radne memorije, zasnovane na magnetnim jezgricama Slika 9.1.2 sadri primer radne memorija sa 3 rei od po 2 bita. Svaki bit je predstavljen jednom magnetnom jezgricom. Selekciju rei omoguuju provodnici rei, a pisanje i itanje bita omoguuju provodnici bitj. Pisanje jedinice u bit j rei i je podrazumevalo prevoenje odgovarajue magnetne jezgrice u eljeno magnetno stanje. Do toga je dolazilo ako se i kroz provodnik rei i kroz provodnik bitj u zadanom smeru propusti polovina struja magnetizacije, tako da se u preseku ovih provodnika dobije struja magnetizacije. itanje ovako predstavljenih bita rei i se sastojalo od proputanja struje magnetizacije kroz provodnik rei u suprotnom

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

176

smeru od onog koji je korien za pisanje i od interpretacije stanja provodnika bitj. U ovim provodnicima se indukovala struja, ako se pri itanju menjalo stanje magnetizacije magnetne jezgrice, pa je itanje bilo destruktivno. Ovakvu memoriju je karakterisalo: 1. vreme pristupa lokaciji (access time), koje protekne izmeu postavljanja zatheva za pristupom i obavljanja eljenog pristupa (na primer, vreme izmeu postavljanja zahteva za itanjem lokacije i dobijanja njenog sadraja) i 2. vreme ciklusa (cycle time), koje protekne izmeu dva uzastopna pristupa. Vreme ciklusa je bilo due od vremena pristupa, jer je ukljuivalo i obnovu sadraja, eventualno ponitenog pri itanju lokacije. To znai da je do novog pristupa lokaciji memorije dolazilo tek nakon obnove sadraja prethodno proitane lokacije. KONTROLERI Primena poluprovodnike tehnologije je omoguila pojavu kontrolera. Oni su bili specijalizovani za pojedine poslove, kao to je, na primer, upravljenje ulaznim i izlaznim ureajima ili jedinicama masovne memorije. Sloenost kontrolera je zavisila od njihove uloge. Tako, na primer, najjednostavniji kontroleri su samo multipleksirali linije, dok su najsloeniji kontroleri upravljali nizom ulaznih i izlaznih ureaja ili jedinica masovne memorije. U drugom sluaju, kontroleri su imali oblik jednostavnijih procesora, posveenih odreenom zadatku. Zato su ovakvi kontroleri nazivani i procesori posebne namene (input output processor), a njihove osobine su bile u potpunosti podreene njihovom zadatku. Na primer, u skupu naredbi ovakvih kontrolera su se nalazile: 1. upravljake naredbe, 2. naredbe za rukovanje pojedinim ulaznim i izlaznim ureajima ili jedinicama masovne memorije (poput naredbe za premotavanje magnetne trake) i 3. naredbe za prenos podataka izmeu radne memorije i ulaznog ili izlaznog ureaja, odnosno jedinice masovne memorije. Procesori posebne namene nisu, za razliku od procesora opte namene, bili predvieni, pa ni raspoloivi za izvravanje korisnikih programa. Slika 9.1.3 sadri prikaz tipine organizacije raunara druge generacije.

177

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

ULAZNI UREAJ

...

IZLAZNI UREAJ

MASOVNA MEMORIJA

...

MASOVNA MEMORIJA

KONTROLER ulaznih i izlaznih ureaja

PROCESOR

KONTROLER masovne memorije

KONTROLER (multiplekser) radne memorije

RADNA MEMORIJA

Slika 9.1.3 Tipina organizacija raunara druge generacije Isprekidane linije (Slika 9.1.3) odgovaraju upravljakim linijama, a pune linije odgovaraju upravljakim, adresnim i linijama podataka. Kontroler radne memorije je bio zaduen samo za multipleksiranje linija. Na mestu kontrolera ulaznih i izlaznih ureaja i kontrolera masovne memorije su se nalazili procesori posebne namene. Oni su ravnopravno pristupali radnoj memoriji, kao i procesor opte namene. Zahvaljujui tome, procesor opte namene je u radnoj memoriji mogao da ostavi ulazno-izlazni program, namenjen za procesor posebne namene i da pokrene njegovu aktivnost, zaustavljajui svoju aktivnost dok traje aktivnost procesora posebne namene. ARHITEKTURA NAREDBI Osobine raunara druge generacije su zavisile od toga da li su bili namenjeni za poslovne obrade, kao, na primer, IBM 1401, ili za numerike obrade, kao, na primer, IBM 7094. U drugom sluaju, procesori su podravali aritmetiku pomine take. Takoe, postojala je i podrka za potprograme, a potreba za modifikovanjem programa je izbegnuta uvoenjem indeksnog adresiranja. Ono je omoguilo da se (efektivna) adresa, na primer, elementa niza, odredi u toku izvravanja naredbi sabiranjem adrese poetka niza, sadrane u mainskom formatu izvravane naredbe, i indeksa elementa niza, sadranog u indeksnom registru. Kod raunara druge generacije je postojala arenolikost u pogledu broja adresa u okviru mainskih formata naredbi. Zavisno od raunara, broj adresa je varirao od 3 do 0. Ako je u mainskom formatu naredbe bio predvien prostor za 3

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

178

adrese, tada su se u naredbama, kao to je naredba sabiranja, mogli izriito oznaiti dva ulazna operanda sa sabircima i izlazni operand, namenjen za zbir. Meutim, ako je bilo predvieno manje adresa, tada se za neke od operanada podrazumevalo da se nalaze u predodreenim lokacijama. Tako, za naredbe sabiranja kod dvoadresnih raunara se podrazumevalo da jedan operand odgovara jednom sabirku, a da drugi operand odgovara drugom sabirku do obavljanja operacije i zbiru nakon obavljanja operacije. Za naredbe sabiranja jedno-adresnih raunara se podrazumevalo da se jedan od sabiraka nalazi u posebnom registru procesora, nazvanom akumulator, gde se smetao (akumulirao) i zbir. Ili, za naredbe sabiranja nula-adresnih raunara se podrazumevalo da se oba sabirka nalaze na vrhu steka, gde se odlagao i zbir. Za jedno-adresne raunare, kao to je bio, na primer, IBM 7094, vezan je pojam akumulatorske arhitekture (accumulator architecture), a za nula-adresne raunare, kao to je bio, na primer, Burroughs B5000, vezan je pojam stek arhitekture (stack architecture). Skup naredbi raunara sa akumulatorskom arhitekturom obavezno je sadrao i naredbe za rukovanje akumulatorima, a skup naredbi raunara sa stek arhitekturom obavezno je sadrao i naredbe za rukovanje stekom. Smanjenje broja adresa u mainskom formatu naredbe je smanjivalo veliinu memorije, potrebne sa smetanje mainskih naredbi, ali je, istovremeno, uzrokovalo i poveanje broja mainskih naredbi u programu, jer su bile neophodne dodatne mainske naredbe, na primer, za smetanje potrebnih operanada u akumulator ili u stek. Prema tome, efekat smanjenja broja adresa u mainskim formatima naredbi je ponitavalo poveanje broja mainskih naredbi u programu. PROGRAMSKI JEZICI VISOKOG NIVOA Za raunare druge generacije je vezana pojava programskih jezika visokog nivoa, kao to su: 1. FORTRAN (FORmula TRANslation, iji razvoj je od 1954. do 1957. godine obavila grupa koju je predvodio John Backus, a koju je finansirao IBM) i 2. COBOL (COmmon Business Oriented Language, ija specifikacija je zavrena 1959. godine, pod nadzorom CODASYL-a, Conference On DAta SYstems Languages). Programski jezici visokog nivoa su ponudili uopteni programski model raunara (druge generacije) i tako omoguili njihovo programiranje bez poznavanja detalja njihovog funkcionisanja. Programski jezici visokog nivoa su zahtevali postojanje kompajlera, koji su programe, pisane programskim jezicima visokog nivoa, prevodili u mainski oblik. Zahvaljujui kompajlerima, programi, pisani programskim jezicima visokog nivoa, su postali prenosivi sa raunara na raunar. Takoe, pojavile su se biblioteke esto korienih potprograma i linkeri, namenjeni za spajanje nezavisno kompiliranih programa i potprograma.

179

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

MEMORIJSKA HIJERARHIJA Ograniena veliina radne memorije raunara druge generacije je terala programere da u radnoj memoriji dre samo deo izvravanog programa i samo deo obraivanih podataka, a ostatak u masovnoj memoriji. Radi toga su razvijene i programerske tehnike za preklapanje (overlaying) delova programa, ije istovremeno prisustvo u radnoj memoriji nije bilo potrebno. Na ovaj nain radna i masovna memorija su tretirani kao dva nivoa memorijske hijerarhije, kojom je upravljao korisniki program, tako to je inicirao prebacivanje svojih delova sa jednog nivoa memorijske hijerarhije na drugi. Slika 9.1.4 sadri prikaz primera preklapanja.
SADRAJ MASOVNE MEMORIJE PROGRAM POTPROGRAM 1 POTPROGRAM 2

MOGUI SADRAJI RADNE MEMORIJE PROGRAM POTPROGRAM 1 POTPROGRAM 2 PROGRAM POTPROGRAM 3 PROGRAM

POTPROGRAM 4

POTPROGRAM 3

...

...

...

POTPROGRAM 4

...
Slika 9.1.4 Primeri preklapanja potprograma u radnoj memoriji OPERATIVNI SISTEMI Oslanjanje samo na programske jezike visokog nivoa, i iz toga proizalo nepoznavanje detalja funkcionisanja raunara druge generacije, je onemoguilo programere da ove raunare koriste na interaktivan nain, uobiajen za raunare prve generacije. To je imalo za posledicu da je nestao jedan od uzroka neracionalnog korienja raunarskog vremena. Umesto interaktivnog naina rada, za raunare druge generacije je uvedena praksa da programeri svoje programe,

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

180

pripremljene na buenim karticama, predaju operaterima (osoblju, zaduenom za opsluivanje raunara). Operateri bi prikupljene programe jedan za drugim putali na izvravanje (batch processing), a rezultate njihovog izvravanja, na primer, u obliku tampanih izvetaja, zajedno sa buenim karticama, vraali programerima. Na ovaj nain, raunar je bio zaposlen dok god je bilo korisnikih programa, spremnih za izvravanje. Radi podrke ovakvog naina rada, razvijeni su i prvi operativni sistemi (batch monitor, batch system). Njihove mogunosti su bile vrlo skromne i dozvoljavale su, na primer, samo kompilaciju programa, kao i punjenje i izvravanje njegovog mainskog oblika. MANE RAUNARA DRUGE GENERACIJE Raunari druge generacije nisu koristili potencijalni paralelizam u radu procesora opte i posebne namene, jer je procesor opte namene, nakon pokretanja procesora posebne namene, zaustavljao svoju aktivnost do zavretka rada procesora posebne namene. Zbog toga, vreme procesora opte namene nije bilo najbolje korieno. To je, zbog njihove visoke cene, bilo nedopustivo. Pored toga, neinteraktivni nain rada je ozbiljno umanjio produktivnost programera, koji su esto dugo ekali izmeu predavanja kartica sa svojim programom i dobijanja rezultata njegovog izvravanja. Na kraju, upravljanje memorijskom hijerarhijom je bio suvian, a i preteak posao za mnoge programere.

9.2. PITANJA
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ta ini tehnoloku osnovu raunara druge generacije? Zato su diskretni poluprovodnici istisnuli elektronske cevi? ta je karakterisalo radnu memoriju, sastavljenu od magnetnih jezgrica? Zato su magnetne jezgrice istisnule prvobitne memorijske tehnologije? Kako se obavlja prenos podataka izmeu radne i masovne memorije kod raunara druge generacije? Koje naredbe su podravali procesori posebne namene? ta je karakterisalo raunare druge generacije? Kakvi raunari imaju akumulatorsku arhitekturu? Kakvi raunari imaju stek arhitekturu? ija pojava je vezana za raunare druge generacije? Koje mane imaju raunari druge generacije?

181

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

10. EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 1970. GODINE


10.1. SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 1970. GODINE
Tehnoloku osnovu raunara tree generacije su inila integrisana kola (integrated circuit) i magnetni diskovi (magnetic disk). INTEGRISANA KOLA Tehnologija integrisanih kola je omoguila smetanje minijaturnog elektronskog kola, sastavljenog od nekoliko tranzistora, kondenzatora, dioda ili otpornika, na povrinu silikonske ploice. Ovakva ploica, upakovana u zatitni omota sa kontaktnim izvodima, je nazvana ip (chip). Ova tehnologija je istisnula tehnologiju diskretnih poluprovodnika, zbog nie cene, vee brzine i vee pouzdanosti, a manje potronje energije i manjeg toplotnog zraenja. Primena tehnologije integrisanih kola je izazvala snienje cene, izmeu ostalog, zato to je omoguila automatizaciju proizvodnje. Tipina primena integrisanih kola je izvedba kombinacionih kola poput dekodera adrese. U ovakav dekoder ulazi n linija, a iz njega izlazi 2n linija (Slika 10.1.1). Podrazumeva se da je za bilo koju kombinaciju signala na ulaznim linijama uvek postavljena samo jedna izlazna linija. Znai, kada se na ulaznim linijama dekodera adrese pojavi adresa neke memorijske lokacije, tu lokaciju selektuje njegova postavljena izlazna linija. adresne linije

selektorske linije

Slika 10.1.1 Dekoder 2x4 MAGNETNI DISKOVI Pojava magnetnih diskova nije oznaila kraj, nego samo izmenu naina upotrebe magnetnih traka. One su i dalje koriene za arhiviranje podataka, kao i za prenoenje podataka sa raunara na raunar, znai za poslove kod kojih je sekvencijalni pristup podacima bio zadovoljavajui. U svim ostalim sluajevima, kod kojih je mogunost nesekvencijalnog pristupa bila vana, odnosno kod kojih je

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

182

bilo bitno da pristup podacima bude to bri, magnetni diskovi su istisnuli magnetne trake, tako da je jedinica magnetnog diska postala sinonim za masovnu memoriju. VELIKI I MINI RAUNARI Primena tehnologije integrisanih kola je omoguila proizvoaima raunara tree generacije da znatno poprave odnos cene i funkcionalnosti (price/performance) svojih proizvoda. To se moglo postii zadravanjem iste funkcionalnosti, uz smanjenje cene, ili poboljanjem funkcionalnosti uz zadravanje cene. Jedna grupa proizvoaa raunara tree generacije je pomenuti odnos popravila pre svega poboljavanjem funkcionalnosti svojih proizvoda, dok se druga grupa proizvoaa odluila za skromniju funkcionalnost, ali i za znatno niu cenu svojih proizvoda. Kao rezultat prvog pristupa nastali su veliki raunari (mainframe), a kao rezultat drugog pristupa nastali su mini-raunari (minicomputer). Pomenuti nazivi su bili posledica, ne samo injenice da su cene i mogunosti mini-raunara predstavljale samo deli cene i mogunosti velikih raunara, nego i injenice da su fizike dimenzije mini-raunara bile znatno manje od fizikih dimenzija velikih raunara. Tako, na primer, procesor mini-raunara je mogao da stane na jednu tampanu plou (printed-circuit board), dok je procesor velikog raunara zauzimao vie tampanih ploa. FAMILIJE RAUNARA Za pojavu velikih raunara je vezana ideja familije raunara. Svi raunari iz jedne familije su imali istu osnovnu arhitekturu naredbi, ali su se razlikovali po ceni i po mogunostima, kao to su brzina rada procesora, veliina radne i masovne memorije, ili broj ulaznih i izlaznih ureaja. Familija raunara je omoguila korisnicima da u nabavci raunara krenu od modela sa najniom cenom i sa najmanjim mogunostima i da kasnije, u skladu sa poveanjem svojih potreba, bez tekoa preu na skuplje i monije modele. Ideja familije raunara je olakala i posao standardizacije, pa je zato imala pozitivan uticaj i na proizvodnju raunara. Zahvaljujui upravo ideji familije raunara i ogromnom trinom uspehu modela iz familije velikih raunara IBM 360/370, namenjenih i za poslovne i za numerike obrade, IBM je postao vodei proizvoa raunara uopte. OTVORENA ARHITEKTURA Za razliku od velikih raunara, okrenutih tritu poslovnih i numerikih obrada, mini-raunari su prve primene nali u upravljanju industrijskim procesima, jer su mogli da im budu u potpunosti posveeni, zahvaljujui svojoj niskoj ceni. Ovakve primene su podrazumevale vezivanje za mini-raunare raznih ureaja, kao to su senzori ili izvrni organi. Poto nisu mogli da proizvedu svaki od takvih ureaja, za proizvoae mini-raunara je bilo vano da potaknu nezavisnu proizvodnju pomenutih ureaja za svoje mini-raunare. Takoe, poto nisu mogli ni da pripreme poseban model mini-raunara za svaku od raznovrsnih primena, za

183

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

proizvoae mini-raunara je bilo vano da korisnici samostalno prilagoavaju mini-raunare svojim potrebama. I jedno i drugo je omogueno zahvaljujui pristupu otvorene arhitekture (open architecture). Ovaj pristup se zasnivao na korienju sabirnice za povezivanje svih preostalih organizacionih komponenti mini-raunara i na publikovanju potpune specifikacije sabirnice. Na taj nain, nezavisni proizvoai su mogli da prave nove organizacione komponente miniraunara, odnosno da prave sopstvene kontrolere, posredstvom kojih su njihovi ureaji mogli da budu zakaeni na sabirnicu i da tako budu ugraeni u miniraunar. Takoe, korisnici su mogli samostalno da nabavljaju organizacione komponente mini-raunara od raznih proizvoaa i da od njih sklapaju sopstveni mini-raunar. Zahvaljujui, izmeu ostalog, i ovakvom pristupu, familija miniraunara PDP-11 (Programmed Data Processor), organizovana oko sabirnice, nazvane Unibus, je doivela veliki trini uspeh, a njen proizvoa, DEC (Digital Equipment Corporation), je postao vodei proizvoa mini-raunara. Slika 10.1.2 sadri prikaz tipine organizacije mini-raunara.
JEDINICE MASOVNE MEMORIJE ULAZNO IZLAZNI UREAJI

PROCESOR

RADNA MEMORIJA

KONTROLER

KONTROLER

SABIRNICA

Slika 10.1.2 Tipina organizacija mini-raunara Sabirnica se sastojala od upravljakih, adresnih i linija podataka, namenjenih za meusobno povezivanje pojedinih parova organizacionih komponenti raunara, koji su za nju zakaeni. Jedinice masovne memorije su obuhvatale i jedinice magnentih diskova i jedinice magnetnih traka. Ulazno-izlazni ureaji su obuhvatali itae buenih kartica ili traka, tampae, ali i terminale, namenjene za dvosmernu komunikaciju sa raunarom. Izmeu kontrolera su postojale velike razlike, na primer, po broju ureaja koje su opsluivali, ili, na primer, po tome da li su imali DMA svojstva. PRODUKTIVNOST PROGRAMERA Poboljanje odnosa cene i funkcionalnosti raunara tree generacije je imalo za posledicu da je vreme programera postalo dragocenije od vremena raunara, pa se prirodno nametnulo pitanje kako funkcionalnost raunara tree generacije

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

184

podrediti potrebama poveanja produktivnosti programera. To se, pre svega, moglo postii pronalaenjem naina za interaktivno korienje raunara tree generacije, da bi programeri mogli da nadgledaju izvravanja svojih programa i da tako u njima bre otkrivaju i otklanjaju greke. Racionalnijem troenju programerskog vremena je doprinosila i automatizacija upravljanja raunarom, kao to je automatizacija upravljanja memorijskom hijerarhijom. Na produktivnost asemblerskih programera, iji broj u periodu oko 1970. godine uopte nije bio zanemarljiv, povoljno je uticalo i proirenje arhitekture naredbi novim naredbama, radi pribliavanja izraajnosti asemblerskih naredbi iskazima programskih jezika visokog nivoa. ARHITEKTURA NAREDBI Izraajnost asemblerskih naredbi se pribliavala iskazima programskog jezika visokog nivoa na sledee naine: 1. proirenjem skupa naredbi, radi pokrivanja i optih i posebnih potreba, 2. podrkom veeg broja tipova podataka, 3. poveanjem broja raspoloivih adresiranja i 4. ortogonalnou (nezavisnou) naredbi i adresiranja, odnosno omoguavanjem slobodnog kombinovanja adresiranja u okviru naredbi, tako da svi operandi mogu biti u registrima (register-register architecture), u memorijskim lokacijama (memory-memory architecture) ili u bilo kojoj meusobnoj kombinaciji. Ovakav pristup je doveo do CISC (Complex Instruction Set Computer) raunara sa veoma kompleksnom arhitekturom naredbi. Za upravljanje njihovim procesorima je bilo potrebno generisati mnotvo sekvenci raznih kombinacija upravljakih signala. To se praktino nije moglo ostvariti pomou oiene (hardwired) upravljake jedinice (Slika 10.1.3), zbog njene preterane kompleksnosti i previsoke cene.
povratno stanje upravljake jedinice (iz status registra) kombinacija upravljakih signala sledee stanje upravljake jedinice

takt poetno stanje upravljake jedinice (iz registra naredbi) upravljaka jedinica

Slika 10.1.3 Organizacija oiene upravljake jedinice

185

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

MIKRO-PROGRAMIRANJE Za upravljanje CISC procesorioma upotrebljena je mikro-programska (microprogrammed) upravljaka jedinica. Za nju je vano uoiti da je vreme pristupa lokacijama njene mikro-programske memorije odreivalo duinu ciklusa procesora, jer je on preuzimao sadraj jedne od lokacija ove memorije u svakom od svojih ciklusa. Mikro-programsku upravljaku jedinicu je predloio Maurice Wilkes jo 1951. godine, ali je njena prva pojava na tritu vezana za raunare IBM 360/370 familije, jer su tek tada sazreli tehnoloki uslovi za njenu upotrebu. Prve mikroprogramske upravljake jedinice raunara tree generacije su se oslanjale na mikroprogramsku memoriju nepromenljivog sadraja (ROM, Read Only Memory, Control Store), koja je imala oblik diodne matrice. Vreme pristupa i vreme ciklusa ovakve memorije se nisu razlikovali i bili su dovoljno kratki, posmatrano sa stanovita duine procesorskog ciklusa. Primena mikro-programske upravljake jedinice je omoguila veliku fleksibilnost raunara, jer je za izmenu funkcionalnosti raunara bilo dovoljno napraviti nove mikro-programe. Ovakva aktivnost je nazvana mikro-programiranje. Mikro-programiranje je omoguilo emulaciju (oponaanje) jednog raunara pomou drugog raunara. Za to je bilo dovoljno napisati interpreter mainskih naredbi prvog raunara u obliku mikro-programa drugog raunara. Pored toga, mikro-programiranje je bilo zasluno i za bolje iskorienje procesorskog vremena, jer su sloenije naredbe i adresiranja uticali na smanjenje broja pristupa radnoj memoriji radi dobavljanja naredbi i na due angaovanje procesora nakon svakog od pomenutih dobavljanja (Slika 10.1.4).
vreme izvravanja dve naredbe faza dobavljanja faza obavljanja faza dobavljanja faza obavljanja vreme faza dobavljanja faza obavljanja

vreme izvravanja jedne sloenije ekvivalentne naredbe

Slika 10.1.4 Poreenje izvravanja dve naredbe i jedne sloenije ekvivalentne naredbe Smanjenje broja pristupa radnoj memoriji je bilo vano, jer je vreme ciklusa radne memorije, napravljene od magnetnih jezgrica, trajalo kao 10 procesorskih

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

186

ciklusa, pa je svako pristupanje radnoj memoriji zaustavljalo aktivnost procesora u trajanju od 10 njegovih ciklusa. Zato je, na primer, bilo bolje da se u okviru izvravanja jedne naredbe obradi element niza i pripremi sadraj indeksnog registra za obradu narednog elementa istog niza, nego da se isti posao obavi u toku izvravanja dve naredbe. Ovakvo smanjenje broja naredbi u programu je bilo racionalno i sa stanovita korienja radne memorije. PROMENLJIVI FORMATI MAINSKIH NAREDBI Racionalno korienje radne memorije je bilo vano, jer je tehnologija magnetnih jezgrica praktino ograniavala veliinu radnih memorija. One su esto imale znatno manje lokacija od broja omoguenog adresnim prostorom, ne samo kod velikih raunara sa 24 bitnim adresnim prostorom, kao kod modela iz IBM 360/370 familije, nego i kod mini-raunara sa 16 bitnim adresnim prostorom, kao kod modela iz PDP-11 familije. Radi skraenja programa, formati mainskih naredbi raunara tree generacije su bili promenljive duine. Krai formati su omoguavali ne samo manje zauzee radne memorije, nego i bre dobavljanje (zbog smanjenja broja pristupa radnoj memoriji). Duina ovih formata je zavisila, ne samo od tipa naredbe (broja operanada), nego i od duine njenih operanada. ADRESIRANJA Za raunare tree generacije, koji su za svaku naredbu vezivali samo jednu kombinaciju adresiranja, mainski formati naredbi nisu sadrali posebne kodove adresiranja, jer su adresiranja mogla biti odreena iz koda naredbe. Ovaj pristup je bio tipian za IBM. U sluaju raunara koji su dozvoljavali kombinovanje raznih adresiranja u okviru iste naredbe, mainski format naredbi je obavezno sadrao i kodove adresiranja. Ovaj pristup je bio tipian za DEC. Za drugi pristup je bila karakteristina tenja da se omogui ortogonalnost naredbi i adresiranja, odnosno, da se omogui kombinovanje svih adresiranja u okviru svake naredbe. Nepovoljna iskustva sa stek i akumulatorskim arhitekturama su uzrokovala da se procesori raunara tree generacije ne oslanjaju na stek ili na akumulatore, nego na registre opte namene. Zato je za ove raunare vezan pojam arhitekture registara opte namene (general purpose register architecture). U mainskom formatu naredbi, adrese registara opte namene su bile ravnopravne adresama lokacija radne memorije, a zahvaljujui promenljivom formatu, naredbe raunara tree generacije su sadrale do 3 ovakve adrese. ORGANIZACIJA RADNE MEMORIJE Radna memorija raunara tree generacije je bila organizovana u 8 bitne bajte. Pored adresiranja svakog bajta, postojala je i mogunost adresiranja rei. Pri tome se javila razlika u pogledu poretka bajta unutar rei (Slika 10.1.5).

187

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

bajti memorije 0 1 A B

...

little endian re B A 1 0

big endian re A B 0 1

Slika 10.1.5 Dva naina organizovanja bajta u rei Po jednom pristupu (nazvanom little endian), na najmanje znaajnom mestu u rei se nalazio bajt sa najniom adresom, a po drugom pristupu (nazvanom big endian), na najmanje znaajnom mestu u rei se nalazio bajt sa najviom adresom. Prvi pristup je usvojio, na primer, DEC, a drugi, na primer, IBM. Prema tome, prilikom prenosa podataka sa raunara jednog proizvoaa na raunar drugog proizvoaa, bilo je neophodno voditi rauna o poretku bajta u rei. Za raunare tree generacije je vezano objedinjavanje memorijskog adresnog prostora i ulazno-izlaznog adresnog prostora u jedinstven adresni prostor. Ovakav pristup je nazvan memorijski preslikani ulaz-izlaz (memory-mapped input output), a prvi ga je primenio DEC. Prednost ovoga pristupa je bila u eliminisanju posebnih ulazno-izlaznih naredbi i u jedinstvenom nainu tretiranja svih lokacija, i onih koje su pripadale radnoj memoriji, ali i onih koje su pripadale kontrolerima. Mana memorijski preslikanog ulaza izlaza je bila u smanjenju broja lokacija u radnoj memoriji, jer je izvestan broj adresa dodeljen registrima kontrolera. MULTIPROGRAMIRANJE Raunari tree generacije su stvorili preduslove za bolju iskorienost procesora, jer su omoguili istovremeni rad procesora i kontrolera (SPOOLing, Simultaneous Peripheral Operation On Line). Znai, nakon pokretanja aktivnosti kontrolera, procesor je mogao nastaviti svoju aktivnost, ako ona nije zavisila od rezultata pokrenute aktivnosti kontrolera. Pri tome su kontroleri koristili mehanizam prekida (interrupt), da bi obavestili procesor o zavretku svoje aktivnosti (mehanizam prekida je sporadino korien i u pojedinim raunarima prve i druge generacije, ali je postao opteprisutan tek u raunarima tree generacije). Aktivnosti procesora i kontrolera su mogle uvek biti preklopljene, ako je bilo mogue na koristan nain angaovati procesor, kad god bi nastavak njegove aktivnosti postao zavisan od rezultata pokrenute aktivnosti kontrolera. Pristup multiprogramiranja (multiprogramming) je ponudio sistematian nain da se procesor uvek dri zaposlen u prethodno opisanoj situaciji. Ideja multiprogramiranja je podrazumevala da se u radnoj memoriji uvek istovremeno nalazi vie raznih slika procesa i da se procesor prekljuuje (context switch) sa jednog na drugi proces, im se, u toku aktivnosti prvog procesa, pokrene aktivnost nekog kontrolera od koje je zavisio nastavak aktivnosti tog procesa. Tom prilikom prvi proces je prelazio iz stanja 'aktivan' u stanje 'eka', a drugi iz stanja 'spreman' u stanje 'aktivan'. Prema tome, dok su postojali spremni procesi, dotle je postojala

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

188

mogunost da se procesor korisno angauje, nakon to pokrene aktivnost nekog od kontrolera. Ali, istovremeno prisustvo vie slika procesa u radnoj memoriji je stvorilo mogunost za meusobne nenamerne ili zlonamerne interakcije procesa. Za takvu interakciju je bilo dovoljno da se u toku aktivnosti jednog od procesa izmeni sadraj slike drugog procesa. Zato je uspena primena multiprogramiranja zavisila od postojanja mehanizma zatite, namenjenog da, u toku aktivnosti procesa, sprei pristupanje lokacijama radne memorije koje ne pripadaju njegovoj slici. Primer takvog mehanizma zatite predstavlja razlikovanje logikog i fizikog adresnog prostora i korienje graninog i baznog registra za transformaciju logikih adresa u fizike. Pored toga, multiprogramiranje je zahtevalo ili proirenje radne memorije ili njeno racionalnije korienje, da bi ona mogla da prihvati to vie slika procesa, radi to dueg korisnog angaovanja procesora. Broj istovremeno prisutnih slika procesa u radnoj memorji je nazvan stepen multiprogramiranja (degree of multiprogramming). Multiprogramiranje je stvorilo preduslove za ravnomernu raspodelu procesorskog vremena izmeu aktivnosti raznih procesa (timesharing). Za ovakvu raspodelu jedino je bilo potrebno izazivati prekide u pravilnim vremenskim intervalima, radi prekljuivanja procesora sa jednog procesa na drugi. U ovakvim okolnostima, korisnicima su nedostajali jo samo terminali za neposrednu komunikaciju sa sopstvenim procesima, radi interpretiranja komandi ili editiranja, na primer. Ovakva vrsta interaktivnog rada nije zahtevala poznavanje detalja funkcionisanja raunara tree generacije, nego samo poznavanje pravila korienja pojedinih sistemskih programa. Pri tome, zahvaljujui ogromnoj razlici u brzini rada procesora i korisnika, jedan procesor je mogao da opslui vie korisnika, odnosno da, ravnomerno raspodeljujui svoje vreme na svakog od njih, stvori kod korisnika privid da im je raunar potpuno posveen. Ovakva vrsta interaktivnog rada je dovela do rairene upotrebe znakovnih video terminala. Pored toga, ona je omoguila korisnicima da meusobno dele skupe ureaje, kao to su ploteri, na primer, ali je i olakala razmenu programa i podataka izmeu korisnika, to je stvorilo uslove za razne oblike meusobne saradnje korisnika. IDEJA VIRTUELNE MEMORIJE Ograniena veliina radne memorije raunara tree generacije, izazvana praktinim razlozima, nije spreila irenje primene multiprogramiranja i interaktivnog rada samo zahvaljujui osobini lokalnosti izvravanja programa, odnosno zapaanju da u toku izvravanja programa procesor ne pristupa podjednako svim lokacijama programa. Praenje izvravanja programa je pokazalo da je verovatnoa pristupanja lokacijama programa izrazito neravnomerna, odnosno da je za neke lokacije ubedljivo vea, nego za druge. Tako je zapaeno da, priblino, 90% vremena izvravanja programa otpada na izvravanje njegovih 10% naredbi, a slian odnos vai i za pristupanje lokacijama sa podacima. Lokalnost moe biti prostorna i vremenska. Prostorna lokalnost (spatial locality) izvravanja

189

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

programa je vezana za izvravanja delova programa u toku kojih procesor pristupa lokacijama sa uzastopnim adresama. Za ove lokacije se, zbog uzastopnih adresa, kae da obrazuju stranicu (page). Prostorna lokalnost je uzrokovana, izmeu ostalog, sekvencijalnim izvravanjem programa i organizovanjem podataka u nizove i slogove. Vremenska lokalnost (temporal locality) izvravanja programa je vezana za izvravanja delova programa u toku kojih procesor ponavlja pristupanje pojedinim lokacijama iz iste stranice. Ova vrsta lokalnosti je uzrokovana, izme u ostalog, postojanjem petlji (loop) u programima. Zahvaljujui osobini lokalnosti izvravanja programa, u toku pojedinih perioda aktivnosti procesa, procesor pristupa samo podskupu svih lokacija slike procesa, obrazovanom od jedne ili vie stranica. Ovakav podskup lokacija je nazvan radni skup (working set). Iskustvo je pokazalo da se radni skup sporo menja u toku vremena. Prema tome, za aktivnost procesa nije potrebno da sve stranice njegove slike budu u radnoj memoriji, nego je dovoljno da se u radnoj memoriji nalaze samo stranice koje obrazuju radni skup. To dalje znai da stepen multiprogramiranja nije odreen brojem slika procesa koji istovremeno mogu da stanu u radnu memoriju, nego brojem njihovih radnih skupova koje radna memorija moe istovremeno da sadri. Pri tome se podrazumeva da su slike procesa smetene u masovnoj memoriji i da se, po potrebi, kopije sadraja njihovih stranica prebacuju izmeu masovne i radne memorije, kada postanu deo radnog skupa, odnosno kada prestanu biti deo radnog skupa. Poto je jedinica prenosa izmeu masovne i radne memorije blok, prebacivane kopije sadraja stranica obuhvataju jedan ili vie blokova. Iz injenice da se u toku aktivnosti procesa cela njegova slika ne nalazi u radnoj memoriji, nego u masovnoj memoriji, sledi da veliina slike nije ograniena veliinom radne, nego veliinom masovne memorije. Poto je masovna memorija vea od radne, znai da fiziki adresni prostor radne memorije nije dovoljan za adresiranje svih lokacija slike procesa. Zato se uvodi prividni ili virtuelni (virtual) adresni prostor, koga koristi procesor. Veliinu virtuelnih adresa (iz virtuelnog adresnog prostora) odreuje format mainskih naredbi procesora. Prema tome, virtuelni adresni prostor ograniava veliinu slika procesa, a fiziki adresni prostor ograniava veliinu radnih skupova. Podrazumeva se da su virtuelni i fiziki adresni prostori izdeljeni na stranice iste veliine, nazvane (respektivno) virtuelne i fizike stranice. Za aktivnost procesora je neophodno da u fizikim stranicama budu kopije virtuelnih stranica koje obrazuju radni skup, jer procesor moe da pristupa samo lokacijama radne memorije. Postojanje dva adresna prostora zahteva da svaka virtuelna adresa, upuena iz procesora, bude pretvorena (address mapping) u fiziku pre nego stigne do radne memorije, odnosno do sabirnice. Za ovo pretvaranje je zaduen kontroler virtuelne memorije (MMU, Memory Management Unit). Slika 10.1.6 sadri prikaz poloaja kontrolera virtuelne memorije u organizaciji raunara.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

190

PROCESOR VIRTUELNA ADRESA KONTROLER VIRTUELNE MEMORIJE FIZIKA ADRESA RADNA MEMORIJA

Slika 10.1.6 Poloaj kontrolera virtuelne memorije u organizaciji raunara Pretvaranje virtuelne adrese u fiziku ima smisla samo ako neka fizika stranica sadri kopiju virtuelne stranice na koju se odnosi pomenuta virtuelna adresa. To se utvruje na osnovu evidencije o kopijama virtuelnih stranica smetenim u fizike stranice. Ako evidencija pokae da u fizikim stranicama nema kopije traene virtuelne stranice, tada je neophodno prebaciti sa masovne memorije kopiju dotine virtuelne stranice u neku od slobodnih fizikih stranica radne memorije. U sluaju da su sve fizike stranice zauzete, neka od njih se oslobaa. Ako oslobaana fizika stranica sadri izmenjenu kopiju virtuelne stranice, pre oslobaanja se izmenjena kopija prebacuje na masovnu memoriju da bi zamenila izvornu virtuelnu stranicu. Pristup, u kome se kopije stranica prebacuju po zahtevu (demand paging), podrazumeva izazivanje posebnog straninog prekida (page fault), kad god se ustanovi da fizike stranice ne sadre kopiju potrebne virtuelne stranice. Izazivanje straninog prekida dovodi do aktiviranja obraivaa straninog prekida, zaduenog za prebacivanje kopija virtuelnih stranica. Podrazumeva se da obraiva straninog prekida iz adrese virtuelne stranice odreuje broj bloka koji je dodeljen dotinoj vitruelnoj stranici. Pretvaranje virtuelne adrese u fiziku se zasniva na injenici da svaka lokacija pripada samo jednoj stranici i u virtuelnom i u fizikom adresnom prostoru, i da se adresa svake lokacije sastoji od adrese virtuelne ili fizike stranice (page number), kojoj lokacija pripada, i od unutranje adrese (offset) lokacije u ovoj stranici. Poto su virtuelna i fizika stranica iste veliine, njihove unutranje adrese su jednake, pa je za pretvaranje virtuelne adrese u fiziku potrebno samo zameniti adresu virtuelne stranice adresom fizike stranice koja sadri kopiju dotine vitruelne stranice. Za ovo pretvaranje, kao i za evidenciju kopija virtuelnih stranica prisutnih u fizikim stranicama, potrebna je tabela stranica (page table). Njeni elementi uspostavljaju korespondenciju izmeu virtuelne stranice i fizike stranice

191

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

koja sadri njenu kopiju. Broj elemenata tabele stranica je isti kao i broj virtuelnih stranica, pa adresa virtuelne stranice slui kao indeks odgovarajueg elementa tabele stranica. U njemu se nalazi ili adresa korespondentne fizike stranice ili oznaka da dotinoj virtuelnoj stranici ne korespondira fizika stranica. Slika 10.1.7 sadri prikaz primera podele virtuelne i radne memorije u virtuelne i fizike stranice, kao i sluaj preslikavanja virtuelnih stranica sa adresama 00 i 10 u fizike stranice sa adresama 0 i 1.
VIRTUELNA MEMORIJA 0000 S00 0001 S01 0010 S02 0011 S03 0100 S10 0101 S11 0110 S12 0111 S13 1000 S20 1001 S21 1010 S22 1011 S23 1100 S30 1101 S31 1110 S32 1111 S33 ADRESA VIRTUELNE STRANICE

FIZIKA MEMORIJA 000 001 010 011 100 101 110 111 S00 S01 S02 S03 S20 S21 S22 S23

TABELA STRANICA 0 1 -

VIRTUELNE STRANICE

ADRESA FIZIKE STRANICE

FIZIKE STRANICE

UNUTRANJA ADRESA LOKACIJE

UNUTRANJA ADRESA LOKACIJE

Slika 10.1.7 Tabela stranica (sve adrese su binarni brojevi) Slika 10.1.7 pokazuje da fizika stranica 0 sadri kopiju virtuelne stranice 00 i da fizika stranica 1 sadri kopiju virtuelne stranice 10. Kada procesor zatrai pristup lokaciji sa virtuelnom adresom 1011 (lokaciji sa sadrajem S23), kontroler virtuelne memorije konsultuje element tabele stranica sa indeksom 10 i u njemu pronae adresu fizike stranice 1. Nakon zamene adrese virtuelne stranice 10 pronaenom adresom korespondentne fizike stranice 1 od virtuelne adrese 1011 nastane fizika adresa 111. Ona adresira lokaciju sa kopijom traenog sadraja S23. Da procesor zatrai pristup lokaciji sa virtuelnom adresom 0110, kontroler virtuelne memorije bi ustanovio da u elementu tabele stranica sa indeksom 01 nema adrese fizike stranice, pa bi izazvao stranini prekid. Aktivirani obraiva prekida bi

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

192

oslobodio jednu, na primer, najranije zauzetu fiziku stranicu i njenu fiziku adresu izbacio iz tabele stranica. Obraiva prekida bi, zatim, obezbedio da u osloboenu fiziku stranicu bude smetena kopija potrebne virtuelne stranice, a u odgovarajui element tabele stranica bi smestio adresu osloboene fizike stranice. Nakon obrade straninog prekida, procesor bi ponovo zatraio pristup lokaciji sa virtuelnom adresom 0110, a kontroler virtuelne memorije bi ponovo zapoeo pretvaranje date virtuelne adrese u fiziku adresu. Pretvaranje virtuelne adrese u fiziku usporava procesor, odnosno smanjuje broj izvravanih mainskih naredbi u jedinici vremena, jer se tabela stranica nalazi u radnoj memoriji, pa rukovanje tabelom stranica zahteva dodatne pristupe radnoj memoriji. Zato je vano da pristupanje tabeli stranica bude kratkotrajno, poto od njega zavisi duina pretvaranja virtuelne adrese u fiziku. To nije bilo mogue postii bez korienja brze poluprovodnike memorije. Njena veliina, ograniena cenom, je nedovoljna za smetanje cele tabele stranica, ali je dovoljna za uvanje kopija nekoliko njenih elemenata. Da bi se znalo koje kopije elemenata tabele stranica se uvaju u lokacijama brze memorije, uz njih se, u tim istim lokacijama, uvaju i indeksi pomenutih elemenata. Prema tome, lokacije brze memorije sadre adrese korespondentnih parova virtuelnih i fizikih stranica. Znai, za svaku virtuelnu adresu, nastalu u procesoru, moe se proveriti da li se adresa njene virtuelne stranice nalazi u nekoj od lokacija brze memorije. Ako se pronae takva lokacija, tada ona sadri i adresu korespondentne fizike stranice. Poto se za pristupanje adresama fizikih stranica iz lokacija brze memorije ne koriste adrese lokacija brze memorije, nego delovi sadraja ovih lokacija (adrese virtuelnih stranica, prisutnih u njima), ovakva brza memorija je nazvana asocijativna memorija (associative memory, translation lookaside buffer). Slika 10.1.8 sadri prikaz primera asocijativne memorije sa 2 lokacije. Sadraj njenih lokacija odgovara tabeli stranica iz primera koga sadri Slika 10.1.7.
DVOBITNE ADRESE VIRTUELNIH STRANICA 00 10 JEDNOBITNE ADRESE KORESPONDENTNIH FIZIKIH STRANICA 0 1

Slika 10.1.8 Asocijativna memorija sa dve trobitne lokacije Osobina lokalnosti izvravanja programa omoguuje da se, i uz malu veliinu asocijativne memorije, u njoj dovoljno esto pronalaze adrese virtuelnih stranica i njima korespondentne adrese fizikih stranica. Samo kada adresa virtuelne stranice ne bude pronaena u asocijativnoj memoriji, ona slui kao indeks elementa tabele stranica, smetene u radnoj memoriji. Ovakvo pristupanje lokacijama radne

193

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

memorije, u proseku, suvie ne produava pretvaranje virtuelne adrese u fiziku, ako je retko, na primer, ako se deava samo u 10 od 100 sluajeva. Uz ovakvu pretpostavku, verovatnoa pogotka (hit), odnosno verovatnoa pronalaenja adrese virtuelne stranice u asocijativnoj memoriji je 0.9, a verovatnoa promaaja (miss) je 0.1. Ako se prihvati da pristupanje asocijativnoj memoriji traje 1 procesorski ciklus, a da pristupanje radnoj memoriji traje 10 procesorskih ciklusa, tada srednje vreme pronalaenja adrese fizike stranice iznosi: 0.91+0.110 == 1.9 procesorskih ciklusa. U sluaju promaaja, sadraj asocijativne memorije se aurira, da bi primio adresu virtuelne stranice, koja je izazvala promaaj, kao i korespondentnu adresu fizike stranice. Zahvaljujui tome to u svom sastavu ima asocijativnu memoriju, kontroler virtuelne memorije moe dovoljno brzo da obavi pretvaranje virtuelne adrese u fiziku i tako da omogui automatizaciju memorijske hijerarhije, sastavljene od radne i masovne memorije. Preduslov za ovakvu automatizaciju je oslanjanje masovne memorije na tehnologiju magnetnih diskova i mogunost direktnog pristupanja blokovima diska. Postavljanje kontrolera virtuelne memorije izmeu procesora i radne memorije je olakalo meusobnu zatitu programa, izvravanih u reimu multiprogramiranja, jer se iste virtuelne adrese iz raznih programa pretvaraju u razliite fizike adrese, pa nema mogunosti za pristupanje tuim lokacijama radne memorije. Da bi tabela stranica bila nepristupana za neovlatene izmene, neophodno je uvesti privilegovani i neprivilegovani reim rada procesora. Pojava memorijske hijerarhije je bila rezultat potrebe za memorijom velikog kapaciteta (izraenog brojem bajta), kratkog vremena pristupa (bajtu ili grupi bajta) i niske cene (po jednom bajtu). Poto su vreme pristupa i cena bili obrnuto proporcionalni, bez memorijske hijerarhije veliki kapacitet su mogle praktino imati samo memorije sa dugakim vremenom pristupa, jer su jedino one imale prihvatljivo nisku cenu. Meutim, obrazovanje memorijske hijerarhije, sastavljene od memorije velikog kapaciteta i dugakog vremena pristupa i od memorije malog kapaciteta i kratkog vremena pristupa, je omoguilo da se, po prihvatljivoj ceni, dobiju memorije velikog kapaciteta, a kratkog srednjeg vremena pristupa. Srednje vreme pristupa je kratko, ako sadraj memorije malog kapaciteta i kratkog vremena pristupa dovoljno esto zadovoljava potrebe izvravanja programa. To se moe postii zahvaljujui osobini lokalnosti izvravanja programa, koja obezbeuje da se retko pristupa memoriji velikog kapaciteta i dugakog vremena pristupa. Na taj nain mogu da se pomire krajnosti. To potvruje i primer virtuelne memorije, iji kapacitet je jednak kapacitetu masovne memorije, a ije srednje vreme pristupa je blisko vremenu pristupa radne memorije. Jasno, prethodno vai pod uslovom da sadraj radne memorije dovoljno esto zadovoljava potrebe izvravanja programa,

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

194

to je mogue zahvaljujui osobini lokalnosti izvravanja programa. Tako, na primer, ako se potrebni sadraji pronalaze u radnoj memoriji proseno u 9999 od 10000 sluajeva, znai, ako je verovatnoa pogotka 0.9999, a verovatnoa promaaja 0.0001, i ako je vreme pristupa radnoj memoriji 10 procesorskih ciklusa, a vreme pristupa masovnoj memoriji 10000 procesorskih ciklusa, tada srednje vreme pristupa virtuelnoj memoriji iznosi: 0.999910+0.000110000 == 10.999 procesorskih ciklusa. IDEJA SKRIVENE MEMORIJE Vano je uoiti da je ideja memorijske hijerarhije nala primenu i u kontroleru virtuelne memorije, radi skraenja srednjeg vremena pretvaranja virtuelne adrese u fiziku, odnosno, radi skraenja srednjeg vremena pronalaenja adrese fizike stranice. U ovom sluaju hijerarhiju su inile asocijativna memorija iz kontrolera virtuelne memorije i radna memorija sa tabelom stranica. Pristup, slian prethodnom, je doveo do obrazovanja memorijske hijerarhije, sastavljene od brze poluprovodnike memorije i radne memorije, s ciljem skraenja srednjeg vremena pristupa radnoj memoriji. Taj cilj se moe ostvariti, ako se u lokacijama brze memorije dovoljno esto nalaze kopije sadraja lokacija radne memorije, potrebne za izvravanje programa, pa dovoljno esto izostaje pristupanje radnoj memoriji. Za brzu memoriju, u ovom sluaju, se koristi naziv skrivena memorija ili ke (cache) memorija, jer njeno postojanje nije vidljivo za programe, odnosno, ne zahteva njihove izmene i jedino utie na skraenje vremena njihovog izvravanja. Skrivena i radna memorija se dele u linije (line). Svaka od ovih linija se sastoji od istog broja lokacija sa uzastopnim adresama. Izmeu skrivene i radne memorije prebacuju se kopije sadraja celih linija, jer to sugerie prostorna lokalnost izvravanja programa, koja uzrokuje poveavanje verovatnoe pristupanja sadrajima lokacija sa uzastopnim adresama. Prema tome, adresa svake lokacije se sastoji od adrese linije (line number), kojoj lokacija pripada, i od unutranje adrese lokacije u svojoj liniji (offset). Skrivena memorija je organizovana kao asocijativna memorija, jer ima suvie malo lokacija da bi se adresa linije sa traenom lokacijom radne memorije mogla koristiti za indeksiranje lokacije skrivene memorije. To znai da lokacije skrivene memorije uvaju ne samo kopiju sadraja linije, nego i njenu adresu (Slika 10.1.9).

195

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

KOPIJA LINIJE SASTAVLJENE OD DVOBITNA DVE REI ADRESA LINIJE 11 S22 0 S23 1

UNUTRANJE ADRESE REI LINIJE

Slika 10.1.9 Skrivena memorija sa jednom lokacijom Slika 10.1.9 sadri primer skrivene memorije sa jednom lokacijom u kojoj su adresa linije i kopija sadraja lokacija sa adresama 110 i 111 (Slika 10.1.7). Za svaku adresu lokacije radne memorije, emitovanu iz procesora, proverava se da li skrivena memorija sadri adresu linije sa ovom lokacijom. Ako se u nekoj lokaciji skrivene memorije pronae adresa pomenute linije, tada ta lokacija sadri kopiju ove linije, pa nije potreban pristup radnoj memoriji. U suprotnom sluaju, neizbean je pristup lokaciji radne memorije, kao i auriranje skrivene memorije, da bi u njoj uvek bile kopije poslednje korienih sadraja lokacija radne memorije. Skrivena memorija se nalazi u kontroleru skrivene memorije, zaduenom za upravljanje memorijskom hijerarhijom, sastavljenom od skrivene i radne memorije (Slika 10.1.10).
PROCESOR FIZIKA ADRESA KONTROLER SKRIVENE MEMORIJE FIZIKA ADRESA RADNA MEMORIJA

Slika 10.1.10 Poloaj kontrolera skrivene memorije u organizaciji raunara

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

196

ODNOS VIRTUELNE I SKRIVENE MEMORIJE Izmeu virtuelne i skrivene memorije postoji principijelna slinost, jer i jedna i druga smanjuju srednje vreme pristupa lokacijama slike procesa. Meutim, izmeu njih postoje i razlike, na primer u pogledu sadraja lokacija asocijativnih memorija, ili u pogledu reakcije na promaaj prilikom pretraivanja asocijatinvih memorija. Skrivena memorija se moe kombinovati sa virtuelnom memorijom. U tom sluaju ona skrauje srednje vreme pristupa virtuelnoj memoriji (Slika 10.1.11).
PROCESOR VIRTUELNA ADRESA KONTROLER VIRTUELNE MEMORIJE FIZIKA ADRESA KONTROLER SKRIVENE MEMORIJE FIZIKA ADRESA RADNA MEMORIJA

Slika 10.1.11 Kombinacija virtuelne i skrivene memorije Postavljanje kontrolera skrivene memorije izmeu sabirnice i kontrolera virtuelne memorije omoguuje da do skrivene memorije stiu samo fizike adrese, ime se izbegava problem pojave vieznanih virtuelnih adresa u skrivenoj memoriji. Princip virtuelne memorije, razvijene za raunar druge generacije, opisao je J. Fotheringham 1961. godine. Upotrebu virtuelne memorije rairili su raunari tree generacije, pre svih raunari iz IBM 370 familije. Skrivenu memoriju je predloio Maurice Wilkes 1965. godine. Ona je prvi put primenjena 1968. godine u raunaru IBM 360/85.

197

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

OPERATIVNI SISTEM I VIRTUELNA MAINA Koncepti multiprogramiranja, interaktivnog rada i virtuelne memorije su zahtevali veoma sloene operativne sisteme, zaduene, na primer, za reagovanje na prekide, za prekljuivanje, kao i za prebacivanje kopija sadraja stranica izme u masovne i radne memorije. Za operativne sisteme raunara tree generacije su vezani pojava sistema datoteka (file system), uvoenje praenja korienja raunara tree generacije, radi naplaivanja usluga, kao i uvoenje pojma virtuelne maine (virtual machine). Ovaj pojam je imao dva znaenja. Prvo od njih se odnosilo na radno okruenje koje su, sa jedne strane, stvarali operativni sistem, odnosno njegovi sistemski pozivi i interpreter komandnog jezika, a sa druge strane sistemski programi, poput editora, na primer. Drugo znaenje ovoga pojma se odnosilo na stvaranje privida da je svakom korisniku raspoloiv primerak celog raunara, odnosno njegova cela arhitektura naredbi. Operativnim sistemima raunara tree generacije pripada, na primer, operativni sistem UNIX, koga su razvili Ken Thompson i Dennis Ritchie. UNIX je razvijen za mini-raunare. Za potrebe njegovog razvoja je napravljen programski jezik C, iji je autor Dennis Ritchie. MANA RAUNARA TREE GENERACIJE Ozbiljna mana raunara tree generacije se odnosila na nepredvidivost odziva u interaktivnom radu, to je negativno uticalo na produktivnost programera. Odziv je bio nepredvidiv, jer je zavisio od broja programa na ije izvravanje je raspodeljivano procesorsko vreme.

10.2. ISHODI EVOLUCIJE ARHITEKTURE RAUNARA U PERIODU OKO 1970. GODINE


RADNA MEMORIJA Osnovna organizaciona jedinica radne memorije je osmobitni bajt. Iako svaki bajt poseduje jedinstvenu adresu, jedinica pristupa radnoj memoriji nije bajt, nego re. Veliina rei je obino jednaka veliini procesorskog registra, da bi se odjednom, u jednom navratu, mogao prebaciti sadraj celog registra izmeu radne memorije i procesora. Slika 10.2.1 sadri prikaz organizacije radne memorije, sastavljene od dvobajtnih rei.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

198

ADRESE ADRESE SEKUNDARNIH PRIMARNIH REI REI 1 bajt 1 bajt 0 0 3 bajt 3 bajt 2 2 5 bajt 5 bajt 4 4 bajt 7 bajt 6 6

...

Slika 10.2.1 Organizacija radne memorije, sastavljene od dvobajtnih little endian rei Rei radne memorije, kojima se moe pristupiti u jednom navratu, se nazivaju primarne rei (aligned words). Za radnu memoriju iz prethodnog primera (Slika 10.2.1) to su rei sa adresama 0, 2, 4, koje obuhvataju bajte 0 i 1, 2 i 3, 4 i 5. Adrese ovih rei su deljive sa 2 bez ostatka. Pristupanje preostalim sekundarnim reima (non-aligned words) sa adresama 1, 3, 5, koje obuhvataju bajte 1 i 2, 3 i 4, 5 i 6 (Slika 10.2.1), se odvija u dva navrata. U svakom od njih se pristupi odgovarajuoj primarnoj rei, radi preuzimanja jednog od traenih bajta. Na primer, pristupanje sekundarnoj rei sa adresom 1 zahteva pristupanje primarnim reima sa adresama 0 i 2, radi dobavljanja bajta sa adresama 1 i 2. Prethodno opisani princip vai i kada je radna memorija raunara sastavljena od rei sa 4 ili 8 bajta. Kod ovakvih radnih memorija adrese primarnih rei su deljive bez ostatka sa 4 ili 8. Ograniavanje pristupa samo na primarne rei radne memorije pojednostavljuje procesor, jer tada nije potreban automatizam za ostvarenje pristupanja sekundarnim reima. ARHITEKTURA NAREDBI ZA IBM SYSTEM/360 Arhitektura naredbi za IBM SYSTEM/360 praktino podrava adresni prostor od 24 bita, koji je organizovan u bajte, sa pristupom samo primarnim reima. Ona omoguuje rukovanje binarnim vrednostima velikim 1, 2 i 4 bajta, realnim vrednostima od 8 bajta (floating-point), decimalnim ciframa izraenim kao etvorobitne vrednosti (packed decimal) i nizovima znakova (string). U ovoj arhitekturi su na raspolaganju 16 registara od 32 bita (registri opte namene), 4 registra od 64 bita za realne brojeve (floating-point) i status registar (program status word), koji sadri programski broja i uslovne bite (condition codes). Ova arhitektura omoguuje privilegovani nain rada procesora (supervisory mode). Ona podrava 5 adresiranja, koji predstavljaju kombinacije neposrednog, registarskog i indeksnog adresiranja. Mainski formati naredbi ove arhitekture su promenljivi. Njihova polja Ri sadre kod registra i:

199
8

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


4 4

kod nar.

R1

R2

Za prethodni RR (register-register) mainski format naredbi se podrazumeva da se 1. operand naredbe nalazi u registru R1, da se 2. operand naredbe nalazi u registru R2 i da se rezultat naredbe smeta u registar R1.
8 4 4 4 12

kod nar.

R1

R2

R3

odstojanje

Za prethodni RX (register-indexed) mainski format naredbi se podrazumeva da se 1. operand naredbe nalazi u registru R1, da se 2. operand naredbe nalazi u memorijskoj lokaciji sa adresom R2+R3+odstojanje i da se rezultat naredbe smeta u registar R1.
8 4 4 4 12

kod nar.

R1

R2

R3

odstojanje

Za prethodni RS (register-storage) mainski format naredbi se podrazumeva da se 1. operand naredbe nalazi u memorijskoj lokaciji sa adresom R3+odstojanje, da se 2. operand naredbe nalazi u registru R2 i da se rezultat naredbe smeta u registar R1.
8 8 4 12

kod nar.

vrednost

R1

odstojanje

Za prethodni SI (storage-immediate) mainski format naredbi se podrazumeva da se vrednost smeta u memorijsku lokaciju sa adresom R1+odstojanje.
8 8 4 12 4 12

kod nar.

duina

R1

odstojanje1

R2

odstojanje2

Za prethodni SS (storage-storage) mainski format naredbi se podrazumeva da se 1. operand naredbe nalazi u memorijskoj lokaciji sa adresom R1+odstojanje1, da se 2. operand naredbe nalazi u memorijskoj lokaciji sa adresom R2+odstojanje2 i da se rezultat naredbe smeta u memorijsku lokaciju sa adresom R1+odstojanje1 (duina oznaava broj memorijskih lokacija na koje se naredbe primenjuje). Sve naredbe ne koriste sva polja iz prikazanih mainskih formata naredbi na prethodno opisani nain. U takve naredbe spadaju upravljake naredbe. Na primer, kod uslovnih upravljakih naredbi RX formata, polje R1 se koristi za izraavanje uslova, a suma sadraja R2, sadraja R3 i odstojanja (displacement) se smeta u programski broja, ako je uslov ispunjen. Arhitektura naredbi za IBM SYSTEM/360 obuhvata sledee tipove naredbi:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

200

1. naredbe za rukovanje podacima (na primer, za prenos i konverziju podataka), 2. naredbe za rukovanje bitima (logike naredbe i naredbe pomeranja), 3. naredbe za celobrojnu binarnu aritmetiku (obuhvaene sve aritmetike operacije), 4. naredbe za celobrojnu decimalnu aritmetiku (obuhvaene sve aritmetike operacije), 5. naredbe za aritmetiku realnih brojeva (obuhvaene sve aritmetike operacije), 6. upravljake naredbe, 7. sistemske naredbe i 8. ulazno-izlazne naredbe. ARHITEKTURA NAREDBI ZA DEC PDP11 Arhitektura naredbi za DEC PDP11 podrava adresni prostor od 16 bita, koji je organizovan u bajte, sa pristupom samo primarnim reima. Ona omoguuje rukovanje binarnim vrednostima velikim 1 i 2 bajta, kao i realnim vrednostima (floating-point) velikim 4 i 8 bajta. U ovoj arhitekturi su na raspolaganju 8 registara od 16 bita (registri opte namene), od kojih jedan slui kao pokaziva steka (stack pointer), a drugi kao programski broja. Pored njih, postoji i status registar (status word), koji sadri uslovne bite (condition codes). Ova arhitektura omoguuje privilegovani nain rada procesora sa 2 nivoa privilegovanog rada (kernel state, supervisor state). Ona podrava registarsko adresiranje, posredno adresiranje sa samouveanjem, posredno adresiranje sa samoumanjenjem, indeksno adresiranje, posredno adresiranje, dvostruko posredno adresiranje sa samouveanjem, dvostruko posredno adresiranje sa samoumanjenjem i indeksno posredno adresiranje. Sva adresiranja se oslanjanju na registre. Adresiranja sa samouveanjem (samoumanjenjem) podrazumevaju da se sadraj korienog registra automatski uvea (umanji) nakon adresiranja. Dvostruka indirekcija znai da korieni registar sadri adresu memorijske lokacije sa adresom operanda. Indeksna indirekcija znai da je rezultat indeksnog adresiranja adresa memorijske lokacije sa adresom operanda. Kombinovanje programskog brojaa sa posrednim adresiranjem sa samouveanjem odgovara neposrednom adresiranju. Slino, kombinovanje programskog brojaa sa dvostruko posrednim adresiranjem sa samouveanjem odgovara apsolutnom adresiranju (u kome se koristi apsolutna adresa). Kombinovanje programskog brojaa sa indeksnim adresiranjem odgovara relativnom adresiranju, a kombinovanje programskog brojaa sa indeksnim posrednim adresiranjem odgovara relativnom posrednom adresiranju. Mainski formati naredbi ove arhitekture su promenljivi:

201

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


10 3 3

kod naredbe

kod oper.

kod registra

Za prethodni mainski format naredbi jedini operand je odreen kodom operanda (koji odreuje adresiranje) i kodom registra (koji odreuje registar na koga se oslanja navedeno adresiranje). Zavisno od adresiranja, ovaj mainski format moe zauzeti 2 ili 4 bajta.
4 3 3 3 3

kod naredbe

kod oper. 1

kod registra 1

kod oper. 2

kod registra 2

Za prethodni mainski format naredbi 1. operand je odreen kodom operanda 1 i kodom registra 1, 2. operand je odreen kodom operanda 2 i kodom registra 2, a rezultat naredbe se smeta na odredite koje odreuje 2. operand. Zavisno od adresiranja, ovaj mainski format moe zauzeti 2, 4 ili 6 bajta.
12 4

kod naredbe

kod uslovnih bita

Za prethodni mainski format naredbi se podrazumeva da jedini operand oznaava uslovne bite koje naredba postavlja na 1 ili na 0.
7 3 3 3

kod naredbe

kod registra 1

kod oper.

kod registra 2

Za prethodni mainski format naredbi 1. operand je odreen kodom registra 1 (podrazumeva se registarsko adresiranje), 2. operand je odreen kodom operanda i kodom registra 2, a rezultat naredbe se smeta na odredite koje odreuje 1. ili 2. operand, zavisno od naredbe. Kada ovaj mainski format odgovara naredbi poziva potprograma, tada kod registra 1 odreuje registar u koji se smeta povratna adresa, a kod operanda i kod registra 2 zajedno odreuju adresu ciljne naredbe. Zavisno od adresiranja, ovaj mainski format moe zauzeti 2 ili 4 bajta.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

202

13

kod naredbe

kod registra

Prethodni mainski format naredbi odgovara naredbi povratka iz potprograma. Kod registra odreuje registar sa povratnom adresom.
8 8

kod naredbe

relativna adresa

Prethodni mainski format odgovara upravljakim naredbama za koje se podrazumeva relativno adresiranje. Znai ciljna adresa se odreuje kao zbir relativne adrese (offset) i sadraja programskog brojaa. Arhitektura naredbi za DEC PDP11 obuhvata sledee tipove naredbi: 1. naredbe za rukovanje podacima (na primer, za prenos i konverziju podataka), 2. naredbe za rukovanje bitima (logike naredbe i naredbe pomeranja), 3. naredbe za celobrojnu binarnu aritmetiku (obuhvaene sve aritmetike operacije), 4. naredbe za aritmetiku realnih brojeva (obuhvaene sve aritmetike operacije), 5. upravljake naredbe i 6. sistemske naredbe. OSOBINE MAGNETNOG DISKA Magnetne diskove karakteriu kapacitet i srednje vreme pristupa. Kapacitet diska je odreen brojem staza i njihovom iskorienou. Kod formatiranog diska cela staza se ne koristi za smetanje podataka, pa je zato kapacitet formatiranog diska manji oko 15% od kapaciteta neformatiranog diska. Na stazi formatiranog diska podaci se nalaze u sektorima. Pored sektora sa podacima, na stazi ispred svakog sektora nalazi se prethodnica (preamble), a iza svakog sektora sledi kod za korekciju greaka (error-correcting code, ecc) i meusektorski razmak. Prethodnica slui da pripremi glavu diska za pristup sektoru. Kod za korekciju greaka omoguuje otkrivanje i ispravku eventualnih greaka po principu Hamingovog koda. Srednje vreme pristupa (bloku) diska (average disk access time) zavisi od srednjeg vremena pomeranja (seek time) glave diska iznad staza, od srednjeg vremena rotacije (rotational delay) sektora ispod glave diska, od vremena prenosa (transfer time) bloka izmeu disk jedinice i njenog kontrolera, kao i od vremena kontrolera (controler time), koje on troi pri prenosu bloka od i do radne memorije. Prema tome, srednje vreme pristupa diska je jednako sumi srednjeg vremena pomeranja, srednjeg vremena rotacije, vremena prenosa i vremena kontrolera.

203

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

ORGANIZACIJA SABIRNICE Zadatak sabirnice je da povee razne organizacione komponente raunara, radi ostvarenja razmene podataka izmeu pojedinih parova ovih komponenti. Zato u sastav sabirnice ulaze, ne samo linije koje povezuju organizacione komponente raunara i elektronika koja omoguuje razmenu signala po linijama, nego i upravljaka logika, koja ureuje pristup linijama sabirnice i razmenu signala po tim linijama. U svakom od parova organizacionih komponenti, koji razmenjuju podatke posredstvom sabirnice, jedna od komponenti ima ulogu aktivne strane (bus master), a druga ulogu pasivne strane (bus slave). Ista komponenta u raznim situacijama moe da bude i pasivna i aktivna strana (na primer, DMA kontroler). Aktivna strana zapoinje razmenu podataka po zauzimanju sabirnice, a pasivna strana uestvuje u ovoj razmeni. Pri tome, zavisno od smera prenosa, postoje dve vrste razmene podataka: transakcija pisanja i transakcija itanja. Kod transakcije pisanja, aktivna strana upuuje ka sabirnici adresu podatka, oznaku vrste transakcije i podatak, a kod transakcije itanja, aktivna strana upuuje na sabirnicu samo adresu podatka i oznaku vrste transakcije. Pasivna strana preuzima sa sabirnice adresu da bi na osnovu nje ustanovila da li se transakcija odnosi na nju. Ako se transakcija odnosi na nju, ona na osnovu oznake vrste transakcije odreuje ta se od nje trai. Za transakciju pisanja, ona samo preuzima podatke sa sabirnice. Za transakciju itanja ona na sabirnicu upuuje adresirani podatak, koga preuzima aktivna strana. Transakcije itanja su podeljene (split transaction), ako sabirnicu mogu da koriste druge aktivna i pasivna strana, nakon to je prva aktivna strana isporuila svojoj pasivnoj strani adresu podatka i oznaku vrste transakcije, a pre nego prva aktivna strana dobije adresirani podatak. Osobine sabirnice, kao to su broj i vrsta njenih linija, njena propusnost (broj bajta koje ona moe da prenese u jedinici vremena), kao i najvei broj organizacionih komponenti koji mogu istovremeno biti na nju zakaeni, zavise od vrste komponenti koje sabirnica povezuje, kao i od njihove meusobne udaljenosti. Ako su unapred poznate karakteristike ovih komponenti i njihove meusobne udaljenosti, tada je vreme sabirnice mogue podeliti na intervale podjednake duine, tako da transakcije traju unapred zadani broj ovakvih intervala. Sabirnice, kod kojih je aktivnost za nju vezanih komponenti usklaena sa poecima pojedinih intervala, se nazivaju sinhrone sabirnice (synchronous bus). One u svom sastavu imaju posebnu upravljaku liniju, za prenos sinhronizacionog signala (sa sata). Svaki od ovih signala oznaava poetak jednog intervala. Ako neka od komponenti u ulozi pasivne strane ne moe da zavri svoj deo transakcije u zadanom broju intervala, tada ona koristi dodatne intervale. Radi ovakvih komponenti, sinhrone sabirnice sadre posebnu upravljaku liniju, po kojoj pasivna strana u zavrnom intervalu alje signal kraja transakcije. Transakcija nije zavrena dok se taj signal ne pojavi. Duina intervala je zavisna, ne samo od karaktera komponenti, nego i od

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

204

duine sabirnice, da bi u toku jednog intervala signali mogli da stignu s kraja na kraj sabirnice. Upravljanje sinhronim sabirnicama je jednostavno, pa se na njega ne troi mnogo vremena. Zato, uz dovoljan broj adresnih i linija podataka, uz kratke intervale, kao i uz obavljanje svih transakcija u minimalnom broju intervala, sinhrone sabirnice imaju veoma visoku propusnost. One se uglavnom koriste za povezivanje procesora i radnih memorija. Tada njihova duina ne prelazi pola metra. Za raznovrsne organizacione komponente, koje se nalaze na veim meusobnim udaljenostima (od vie metara), praktino je teko ostvariti sinhronizovan rad. Zato se saradnja ovakvih komponenti zasniva na dogovaranju (handshaking). Ono se ostvaruje razmenom signala, za ta su neophodne posebne upravljake linije. Po ovakvim linijama aktivna strana najavljuje pasivnoj poetak transakcije, a pasivna strana obavetava aktivnu stranu o zavretku transakcije. Sabirnice, koje zahtevaju dogovaranje aktivne i pasivne strane, se nazivaju asinhrone sabirnice (asynchronous bus). Potovanje protokola razmene signala, ije trajanje mora da uzme u obzir najgore pretpostavke, uzrokuje da asinhrone sabirnice imaju manju propusnost od sinhronih sabirnica (ovakva poreenja imaju smisla samo ako su sabirnice izvedene u istoj tehnologiji). Za uspean prenos podataka neophodno je spreiti da vie aktivnih strana istovremeno pokrenu svoje transakcije. Zato pokretanju transakcije obavezno prethodi zauzimanje sabirnice. U sluaju kada na istu sabirnicu moe biti vezano vie procesora, zgodno je da u zauzimanju sabirnice posreduje poseban arbitar sabirnice (arbiter). Da bi zauzela sabirnicu, aktivna strana upuuje signal zahteva (bus request) po posebnoj upravljakoj liniji koja vodi ka arbitru sabirnice. Sabirnica je dodeljena aktivnoj strani do koje stigne signal odobrenja (bus grant) po posebnoj upravljakoj liniji koja vodi od arbitra sabirnice. Aktivna strana objavljuje da je zauzela sabirnicu upuivanjem signala zauzea (bus busy) po posebnoj upravljakoj liniji koja vodi ka arbitru sabirnice. Taj signal ostaje aktivan dok god aktivna strana koristi sabirnicu. Ako je sabirnica zauzeta u trenutku pojave signala zahteva, arbitar sabirnice eka oslobaanje sabirnice, pa tek onda odobrava njeno ponovno zauzimanje. Pri tome, nema smetnje da vie aktivnih strana po istoj upravljakoj liniji upuuje signal zahteva ka arbitru sabirnice, pod uslovom da upravljaka linija, namenjena za signal odobrenja, serijski (daisy chaining) povezuje aktivne strane (Slika 10.2.2).

205

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

arbitar sabirnice

aktivna strana 1

aktivna strana 2

...

...

linija odobrenja linija zahteva linija zauzea

sabirnica

...
Slika 10.2.2 Serijsko vezivanje aktivnih strana linijom odobrenja U sluaju serijskog vezivanja aktivnih strana linijom odobrenja, sabirnicu zauzima prva aktivna strana do koje stigne signal odobrenja. Ona taj signal ne proputa dalje. Ovakav nain zauzimanja sabirnice je jednostavan, ali ima manu da statiki dodeljuje vii prioritet aktivnoj strani koja je fiziki blie arbitru sabirnice. Ovaj problem se izbegava, ako izmeu arbitra sabirnice i svake od aktivnih strana postoje posebne linije za signale zahteva i odobrenja (independent requesting). Mogue je i kombinovanje prethodna dva pristupa, tako da svaka od vie upravljakih linija, namenjenih za signal odobrenja, serijski povezuje vie aktivnih strana. Na upravljanje sabirnicom se troi manje vremena, ako se, nakon pripreme prenosa, ne prenosi samo jedan, nego vie podataka u nizu. Tada se vreme, potroeno za pripremu prenosa, rasporeuje na svaki od prenosa u nizu. Zato sabirnice omoguuju, ne samo jedinini (single word), nego i grupni (multiple word) prenos. Veliina podatka, koji se u jednom navratu prenosi sabirnicom, zavisi od broja linija podataka. Vei broj linija podataka obezbeuje veu propusnost sabirnice. Radi sniavanja cene, nekada se linije podataka koriste i za prenos adrese. Ovakvo vremensko multipleksiranje linija sabirnice smanjuje njenu propusnost. Broj linija, kao i propusnost sabirnice, obrnuto su proporcionalni njenoj duini. Zato najdue sabirnice, dugake vie metara, sadre samo od 8 do 16 linija podataka i koriste posebne protokole, radi pravilne interpretacije sadraja linija podataka. Namena sabirnice u potpunosti oblikuje njene osobine. Tako se razlikuju: 1. memorijske sabirnice (posveene povezivanju procesora i radnih memorija), 2. ulazno-izlazne sabirnice (posveene povezivanju kontrolera masovnih memorija i kontrolera ulaznih i izlaznih ureaja) i 3. sistemske sabirnice (posveene povezivanju procesora, radnih memorija i kontrolera). Memorijske sabirnice imaju najveu propusnost i najmanju duinu, a ulaznoizlazne sabirnice imaju najmanju propusnost i najveu duinu. Osobine sistemskih sabirnica su izmeu osobina memorijskih i ulazno-izlaznih sabirnica.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

206

Sistemska sabirnica se koristi kao jedina sabirnica kod mini-raunara. Memorijska i ulazno-izlazna sabirnica se sreu kod velikih raunara, kod kojih je vano da aktivnosti radi ulaza i izlaza podataka to manje ometaju rad procesora. Slika 10.2.3 sadri prikaz organizacije raunara sa memorijskom i ulazno-izlaznom sabirnicom.

PROCESOR

KONTROLER VIRTUELNE MEMORIJE KONTROLER SKRIVENE MEMORIJE RADNA MEMORIJA MEMORIJSKA SABIRNICA VEZNI KONTROLER ULAZNO IZLAZNA SABIRNICA KONTROLER KONTROLER

JEDINICE MASOVNE MEMORIJE

...

ULAZNO IZLAZNI UREAJI

Slika 10.2.3 Organizacija raunara sa memorijskom i ulazno-izlaznom sabirnicom Sabirnice su najee standardizovana organizaciona komponenta raunara. ORGANIZACIJA ASOCIJATIVNE MEMORIJE Zadatak asocijativne memorije je da brzo pronae sadraj koji korespondira zadanoj adresi. Kada asocijativna memorija opsluuje kontroler virtuelne memorije, ovaj sadraj predstavlja traenu fiziku adresu, a kada asocijativna memorija opsluuje kontroler skrivene memorije, ovaj sadraj predstavlja kopiju traene linije. Izmeu zadane adrese i traenog sadraja se uspostavi korespondencija, kada

207

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

se oni, kao ureeni par, smeste u neku lokaciju asocijativne memorije. Kada zadana adresa postane deo ovakvog ureenog para, ona se naziva referentna adresa (tag). Pored bita, predvienih za smetanje ureenog para, sastavljenog od referentne adrese i njoj korespondentnog sadraja, svaka lokacija asocijativne memorije sadri i poseban bit popunjenosti, namenjen za podatak o popunjenosti dotine lokacije. Brzo pronalaenje traenog sadraja omoguuju komparatori, koji zadanu adresu porede sa prisutnom referentnom adresom iz popunjene lokacije asocijativne memorije. Kada je broj komparatora jednak broju lokacija asocijativne memorije (Slika 10.2.4), tada ona ima punu asocijativnost (full associativity).
zadana adresa referentna adresa korespondentni sadraj bit popunjenosti

komparatori

lokacije asocijativne memorije

Slika 10.2.4 Asocijativna memorija (od 4 lokacije) sa punom asocijativnou Kod asocijativne memorije sa punom asocijativnou, zadana adresa se istovremeno poredi sa svim prisutnim referentnim adresama. Poreenje je uspeno, odnosno ostvaren je pogodak, ako se zadana adresa podudari sa nekom od prisutnih referentnih adresa. Tada sadraj, uparen sa dotinom referentnom adresom, predstavlja traeni sadraj. Ako se zadana adresa ne podudara sa prisutnim referentnim adresama, poreenje je neuspeno, odnosno ostvaren je promaaj. Tada sleduje punjenje neke od lokacija asocijativne memorije novim ureenim parom, kada izvan asocijativne memorije bude pronaen sadraj koji korespondira zadanoj adresi. Za punjenje se odabira bilo koja od nepopunjenih lokacija asocijativne memorije. Ako su sve lokacije asocijativne memorije popunjene, za punjenje se oslobaa lokacija sa najstarijim uspenim poreenjem. Ovakav kriterijum izbora lokacije za punjenje je u skladu sa principom lokalnosti po kome lokacija sa uspenim poreenjem u neposrednoj prolosti ima veu verovatnou za uspeno poreenje u neposrednoj budunosti, od lokacija sa neuspenim poreenjima u neposrednoj prolosti. Za brzo pronalaenje lokacije asocijativne memorije sa najstarijim uspenim poreenjem, zgodno je lokacije uvezati u listu. Na njen poetak uvek dolazi lokacija sa najnovijim uspenim poreenjem, tako da na njen kraj prirodno dospeva lokacija sa najstarijim uspenim poreenjem. Ovakav pristup predstavlja realizaciju algoritma, oznaenog skraenicom LRU (least recently used). On je primenljiv samo ako je izvezivanje lokacije iz liste, radi njenog uvezivanja na poetak liste mogue izvesti bez usporavanja rada asocijativne memorije.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

208

Ekonomski razlozi sugeriu smanjenje broja komparatora, kada asocijativna memorija ima mnogo lokacija. To se moe postii modularnom organizacijom asocijativne memorije, u kojoj na svaki modul dolazi po jedan komparator. U odnosu na asocijativnu memoriju sa punom asocijativnou, broj komparatora se moe prepoloviti, ako se lokacije asocijativne memorije organizuju u dva modula sa po dve lokacije (Slika 10.2.5).
zadana adresa referentna korespondentni sadraj bit adresa popunjenosti 0 1 0 1 komparatori lokacije asocijativne memorije adrese lokacija iz prvog modula adrese lokacija iz drugog modula

Slika 10.2.5 Asocijativna memorija (od 4 lokacije) sa dvostrukom asocijativnou Slika 10.2.5 prikazuje asocijativnu memoriju sa dvostrukom asocijativnou (2-way set-associativity). Kada je broj komparatora manji od broja lokacija asocijativne memorije, kao kod asocijativne memorije sa dvostrukom asocijativnou, tada svaki komparator poredi zadanu adresu sa prisutnom referentnom adresom iz samo jedne lokacije svog modula. Za izbor lokacije koristi se deo bita zadane adrese. Ovi biti tada ne uestvuju u poreenju, jer se podrazumevaju, pa se ne ukljuuju u referentnu adresu. Referentna adresa moe dospeti samo u lokacije koje adresiraju biti iskljueni iz nje, jer se ovi biti podrazumevaju samo za dotine lokacije. U primeru koga sadri Slika 10.2.5 za adresiranje lokacija asocijativne memorije dovoljan je jedan, na primer najmanje znaajni bit zadane adrese. Za sluaj da je zadana adresa 11101110, njeni znaajniji biti 1110111 se istovremeno porede sa referentnim adresama iz nultih lokacija oba modula. Lokacije sa istim adresama iz raznih modula asocijativne memorije obrazuju skupove. Lokacije iz istog skupa se uvezuju u listu radi pronalaenja lokacije sa najstarijim uspenim poreenjem (LRU algoritam). Broj komparatora asocijativne memorije se moe svesti na 1, ako sve lokacije asocijativne memorije obrazuju jedan modul (Slika 10.2.6).

209

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

zadana adresa

referentna korespondentni sadraj bit adresa popunjenosti 00 01 10 11 lokacije asocijativne memorije adrese lokacija iz jedinog modula

komparator

Slika 10.2.6 Asocijativna memorija (od 4 lokacije) sa jednostrukom asocijativnou Ovakva asocijativna memorija ima jednostruku asocijativnost (1-way setassociativity, direct mapped). U primeru koga sadri Slika 10.2.6 jedini komparator poredi zadanu adresu sa prisutnom referentnom adresom iz lokacije koju adresiraju dva, na primer, najmanje znaajna bita zadane adrese. Poto se oni podrazumevaju, oni ne uestvuju u poreenju, pa njih ne sadri referentna adresa. Za sluaj da je zadana adresa 11111100, njeni znaajniji biti 111111 se istovremeno porede sa referentnom adresom iz nulte lokacije. Iskustvo pokazuje da asocijativna memorija sa dvostrukom asocijativnou nije loija od dvostruko vee asocijativne memorije sa jednostrukom asocijativnou. To se objanjava injenicom da je svim zadanim adresama, sa istim najmanje znaajnim bitima, na raspolaganju samo jedna lokacija asocijativne memorije sa jednostrukom asocijativnou, a dve lokacije asocijativne memorije sa dvostrukom asocijativnou. Na poboljanje rada asocijativne memorije utiu poveanje broja njenih lokacija, kao i poveanje njenog stepena asocijativnosti. Ipak, znaaj poveanja stepena asocijativnosti opada iznad etvorostruke asocijativnosti, izmeu ostalog i zbog poveanja sloenosti asocijativne memorije. Asocijativne memorije se oslanjaju na najbre (najskuplje) tehnologije, da bi to bre obavljale svoj zadatak, pa to ograniava i broj njihovih lokacija i broj komparatora. SKRIVENA MEMORIJA Kontroler skrivene memorije podrava operacije itanja i pisanja. U toku obavljanja ovih operacija, on proverava da li se u nekoj od lokacija njegove asocijativne memorije nalazi kopija linije sa sadrajem lokacije koju adresiraju njene operacije. Za uspean rad skrivene memorije je vano da prethodna provera to ee ima pozitivan ishod, na primer da verovatnoa pogotka (hit) bude, vea od 0.8, jer mnogo promaaja (miss) znaajno produava srednje vreme pristupa. Tako, za asocijativnu memoriju sa vremenom pristupa od 2 procesorska ciklusa, za radnu memoriju sa vremenom pristupa od 10 procesorskih ciklusa i za verovatnou pogotka 0.9, srednje vreme pristupa je 2.8 procesorskih ciklusa, a za verovatnou pogotka 0.7, srednje vreme pristupa je 4.4 procesorskih ciklusa. Zapravo, vreme

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

210

pristupa u sluaju promaaja je viestruko due od vremena pristupa u sluaju pogotka, jer ukljuuje pristup sadraju lokacije iz radne memorije, kao i prenos kopija sadraja svih lokacija linije izmeu radne i asocijativne memorije. Upravljanje skrivenom memorijom se razlikuje za operacije itanja i pisanja, kao i za sluajeve pogotka i promaaja u okviru neke od ovih operacija. Tako, pogodak kod itanja sadraja ne zahteva pristup radnoj memoriji, a promaaj dovodi do pristupa radnoj memoriji, radi prebacivanja kopije sadraja linije iz radne memorije u asocijativnu memoriju. Operacija pisanja sadraja adresirane lokacije je dugotrajnija od operacije itanja kopije sadraja adresirane lokacije, jer podrazumeva pristupanje radnoj memoriji. Pri tome, u sluaju pogotka, odmah se menja kopija adresiranog sadraja u lokaciji skrivene memorije, a pristupanje radnoj memoriji se moe odloiti do trenutka kada se pomenuta lokacija asocijativne memorije oslobaa. Tek tada se izbacivana kopija linije upisuje u radnu memoriju (write back), i to samo ako je izmenjena. Radi toga, svakoj lokaciji asocijativne memorije se dodaje bit izmenjenosti (modify bit), koji se pri svakom pisanju postavlja na vrednost 1. Odlaganje pisanja u radnu memoriju smanjuje broj pristupanja radnoj memoriji, ali po cenu da su sadraji pojedinih lokacija radne memorije neaurni. Ako je to neprihvatljivo, tada svako pisanje kopije adresiranog sadraja u lokaciji skrivene memorije prati i pristupanje radnoj memoriji (write trough). U sluaju promaaja pri pisanju sadraja adresirane lokacije, mogue je menjati samo sadraj adresirane lokacije u radnoj memoriji (write around). To je opravdano samo ako nema naknadnih izmena sadraja iste lokacije. U suprotnom, bolje je da se kopija sadraja adresirane lokacije radne memorije, nakon izmene, prebaci u skrivenu memoriju (write allocate). Pri tome se uvek prebacuje sadraj cele linije. Slika 10.2.7 sadri pregled prethodno opisanih sluajeva. itanje za pogodak za promaaj pisanje za pogodak iz asocijativne memorije iz radne memorije, uz auriranje asocijativne memorije u asocijativnu uz odlaganje pisanja u radnu memoriju memoriju (write back) uz pisanje u radnu memoriju (write trough) u radnu uz auriranje asocijativne memorije memoriju (write allocate) bez auriranja asocijativne memorije (write around)

za promaaj

Slika 10.2.7 Pregled sluajeva itanja i pisanja skrivene memorije Koncepti skrivene memorije i memorijski preslikanog ulaza izlaza nisu u saglasnosti, jer ulazno-izlazni ureaji mogu da izmene sadraj lokacija iz radne

211

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

memorije, i da tako uine neaurnim njihove kopije u skrivenoj memoriji. Reenje ovoga problema je da skrivena memorija ne sadri kopije sadraja lokacija kojima pristupaju ulazno-izlazni ureaji. Postoji i alternativno reenje, da kontroleri ulaznoizlaznih ureaja pristupaju radnoj memoriji posredstvom skrivene memorije. Njegova slabost je da tada ovi kontroleri ometaju rad procesora. VIRTUELNA MEMORIJA Kontroler virtuelne memorije podrava operacije itanja i pisanja. U toku obavljanja ovih operacija, on proverava da li se u nekoj od lokacija njegove asocijativne memorije nalazi adresa fizike stranice koja korespondira zadanoj adresi virtuelne stranice (Slika 10.2.8).
adresa virtuelne stranice unutranja adresa

virtuelna adresa

asocijativna memorija

...

...
tabela stranica fizika adresa

adresa fizike stranice

Slika 10.2.8 Pretvaranje virtuelne adrese u fiziku Pretvaranje virtuelne adrese u fiziku je bre, ako asocijativna memorija sadri zadanu adresu virtuelne stranice i njoj korespondentnu adresu fizike stranice. U suprotnom sluaju, proverava se u tabeli stranica da li adresiranoj virtuelnoj stranici odgovara fizika stranica. Ako odgovara, obavi se pretvaranje virtuelne adrese u fiziku, zamenom adrese virtuelne stranice korespondentnom adresom fizike stranice. Uz to se aurira asocijativna memorija, tako to se u neku od njenih lokacija (odabranih iz skupa moguih lokacija po LRU algoritmu) smeste

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

212

pomenuta adresa virtuelne stranice i njoj korespondentna adresa fizike stranice. Meutim, ako adresiranoj virtuelnoj stranici ne odgovara fizika stranica, odnosno ako je odgovarajui element tabele stranica nepopunjen, generie se stranini prekid. Zadatak obraivaa ovog prekida je: (1) da obezbedi slobodnu fiziku stranicu, (2) da obezbedi da se u nju smesti kopija adresirane virtuelne stranice i (3) da aurira odgovarajue elemente tabele stranica (radi uparivanja adrese virtuelne stranice i adrese odgovarajue fizike stranice), to za sobom povlai i auriranje asocijativne memorije. Po zavretku obrade straninog prekida mogue je pretvaranje zadane virtuelne adrese u fiziku adresu. Na popunjenost elementa tabele stranica ukazuje njegov bit popunjenosti. Obezbeivanje slobodne fizike stranice podrazumeva oslobaanje jedne od zauzetih fizikih stranica, ako su sve fizike stranice zauzete. To obuhvata auriranje tabele stranica, radi raskidanja postojee veze izmeu adrese neke virtuelne stranice i adrese oslobaane fizike stranice, kao i prebacivanje sadraja oslobaane fizike stranice na disk, ako je njen sadraj izmenjen. Zato svaka izmena sadraja fizike stranice mora da ostane zabeleena. Radi toga se za svaku fiziku stranicu vee bit izmenjenosti (modify bit, dirty bit). On se automatski postavlja pri svakoj izmeni sadraja fizike stranice. Prilikom izbora fizike stranice za oslobaanje, dobro je primenjivati LRU algoritam. Radi toga je potrebno beleiti svako pristupanje sadraju, odnosno referenciranje sadraja fizike stranice. Zato se za svaku stranicu vee i bit referenciranja (reference bit). On se automatski postavlja pri svakom pristupanju sadraju fizike stranice. Podrazumeva se da se bit referenciranja ponitava u pravilnim vremenskim intervalima, da podatak o referenciranju ne bi zastario. Bit izmene i bit referenciranja su vezani za fiziku stranicu i uvaju se u elementu tabele stranica u kome je njena adresa. To znai da se kopije ovih bita nalaze i u lokaciji asocijativne memorije, kada ona sadri adresu njihove fizike stranice. Prilikom izbacivanja adrese fizike stranice iz asocijativne memorije, kopije za nju vezanih bita izmene i referenciranja se prepisuju u odgovarajui element tabele stranica. Ovi biti se ponitavaju, kada se njihova fizika stranica oslobaa. Za elemente tabele stranica je zgodno da, pored bita izmene i bita referenciranja, sadre i bit zabrane prebacivanja linija sadraja fizike stranice u skrivenu memoriju. To je vano za stranice kojima pristupaju kontroleri ulaznoizlaznih ureaja. Za veliki adresni prostor i malu stranicu, tabela stranica postaje predugaka. Na primer, za adresni prostor od 32 bita i stranicu od 29 (512) bajta, tabela stranica ima 223 elemenata i minimalno zauzima 225 bajta (32 megabajta), ako se za svaki element predvide po 4 bajta. Za ovako veliku tabelu nema dovoljno prostora u radnoj memoriji, pogotovo u uslovima multiprogramiranja, kada svakom izvravanom programu odgovara posebna tabela stranica. Zbog toga se trenutno nekorieni delovi tabele stranica smetaju u masovnu memoriju, to produava

213

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

srednje vreme pristupa virtuelnoj memoriji, jer zahteva troenje vremena na prebacivanje delova tabele stranica izmeu radne i masovne memorije. Zato je veoma vano smanjiti veliinu tabele stranica. To se moe postii poveanjem veliine stranica, ali, za krae slike procesa koje ne zauzimaju sve stranice virtuelnog adresnog prostora, efikasnije reenje je podela tabele stranica na vie odseaka iste veliine i korienje samo odseaka ije elemente indeksiraju adrese zauzetih virtuelnih stranica. O svakom odseku tabele stranica se mora znati da li se koristi i gde se nalazi. Podatke o odsecima sadre elementi posebne tabele evidencije posredstvom koje se pristupa korienim odsecima. Za ovakvo reenje se kae da uvodi organizaciju tabele stranica u dva nivoa, jer se na prvom nivou nalazi tabela evidencije, iji elementi sadre adrese odseaka tabele stranica na drugom nivou. Elementi ovih odseaka sadre adrese fizikih stranica. Tabela evidencije se naziva tabela stranice sa prvog nivoa, a odseci tabele stranice se nazivaju tabele stranica sa drugog nivoa. Kada tabela stranica ima dva nivoa, biti virtuelne adrese se razvrstavaju u tri grupe. Najznaajniji biti virtuelne adrese indeksiraju elemente tabele stranica sa prvog nivoa. Preostali biti sadre adresu virtuelne stranice i unutranju adresu. Adresa virtuelne stranice indeksira element tabele sa drugog nivoa. Adresu ove tabele sadri indeksirani element tabele sa prvog nivoa (Slika 10.2.9).
indeks tabele stranica 1. nivoa virtuelna adresa

adresa virtuelne stranice

unutranja adresa

tabela stranica 1. nivoa

...

...
tabele stranica 2. nivoa

...

adresa fizi ke stranice

fizi ka adresa

Slika 10.2.9 Tabela stranica iz dva nivoa

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

214

Prednost organizacije tabele stranica u dva nivoa je da ona zahteva postojanje samo tabele sa prvog nivoa i samo korienih tabela sa drugog nivoa. A njih ima malo za kratke slike procesa, jer one zauzimaju malo stranica. Virtuelne adrese koristi procesor, ali je zgodno da ih koriste i kontroleri. Da bi to bilo mogue, neophodno je osposobiti kontrolere za pretvaranje virtuelnih adresa u fizike, ali i osposobiti operativni sistem, tako da podrava i ovakvo pretvaranje adresa. MEMORIJSKA HIJERARHIJA Ideja memorijske hijerarhije je zasnovana na osobini lokalnosti izvravanja programa, a njen cilj je da kombinovanjem memorija raznih cena, kapaciteta i vremena pristupa ostvari to vei kapacitet ukupne memorije, po to nioj ceni i uz to krae srednje vreme pristupa. Pri tome, na viim nivoima memorijske hijerarhije se nalaze memorije manjeg kapaciteta, vie cene i kraeg vremena pristupa. Ovo vreme je krae delom zbog skupocenije tehnologije, a delom zbog toga to manja memorija uvodi manje kanjenja signala. Memorijska hijerarhija ima etiri osnovna nivoa. Na prvom (najviem) nivou, nalaze se procesorski registri opte namene. Zato se kapacitet ovoga nivoa izraava u bajtima, a vreme pristupa odgovara procesorskom ciklusu. Na drugom nivou nalazi se skrivena memorija. Njen kapacitet se izraava u kilobajtima, a vreme pristupa je oko 2 procesorska ciklusa. Na treem nivou nalazi se radna memorija. Njen kapacitet se izraava u megabajtima, a vreme pristupa je priblino 10 procesorskih ciklusa. Na etvrtom (najniem) nivou nalazi se masovna memorija. Njen kapacitet se izraava u gigabajtima, a vreme pristupa je priblino 106 procesorskih ciklusa. Do prebacivanja kopija sadraja sa niih na vie nivoe dolazi kada se otkrije da na najviem nivou nema kopije potrebnog sadraja. Ovo se naziva promaaj, za razliku od pogotka, kada se na najviem nivou pronae kopija potrebnog sadraja. O prebacivanju kopija sadraja lokacija sa drugog na prvi nivo brine kompajler, odnosno, mainske naredbe koje on generie. O prebacivanju kopija sadraja linija sa treeg na drugi nivo brine procesor, odnosno njegov kontroler skrivene memorije. O prebacivanju kopija sadraja stranica sa etvrtog na trei nivo brinu procesor, odnosno njegov kontroler virtuelne memorije i operativni sistem. Prebacivanje kopija sadraja stranica sa etvrtog nivoa na trei nivo pokree procesor, ali, poto je to prebacivanje znatno dugotrajnije od prekljuivanja, procesor ne eka na kraj prebacivanja, nego se prekljuuje na izvravanje drugog programa. Zato u ovom prebacivanju uestvuje i operativni sistem. Prebacivanje kopije sadraja linije sa treeg na drugi nivo je znatno krae od prekljuivanja, pa zato procesor pokree ovakvo prebacivanje i eka njegov kraj. U svakom sluaju, procesor podrava memorijsku hijerarhiju, ako brzo proverava da li postoji kopija traenog sadraja u viim nivoima memorijske hijerarhije, i ako izaziva

215

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

odgovarajui prekid, radi aktiviranja operativnog sistema, kada se na treem nivou memorijske hijerarhije ne pronae kopija sadraja traene stranice. Verovatnoa promaaja zavisi od veliine linije/stranice. Ako su linije/stranice suvie male, tada se u njima ne nalaze kopije sadraja svih lokacija koje su obuhvaene prostornom lokalnou izvravanja programa, pa se tada esto javljaju promaaji. S druge strane, ako su linije/stranice prevelike, tada ih moe manje stati u drugi/trei nivo memorijske hijerarhije, pa to uzrokuje este promaaje. Zato se veliina linija kree od 4 do 128 bajta, a veliina stranica od 512 do 8192 bajta. PROBLEM SINHRONIZACIJE Potreba za brim reagovanjem raunara na vanjske dogaaje zahteva da se vreme obrade prekida skrati. Zato obraiva prekida obavlja samo neodloan deo posla, a ostalo preputa pozadinskom procesu. Pozadinski proces preuzima od obraivaa prekida podatke posredstvom deljenog bafera. Ako obrada prekida prekine pozadinski proces u preuzimanju podataka iz deljenog bafera i izmeni sadraj ovog bafera, pozadinski proces e preuzeti deo starog i deo novog sadraja ovog bafera. Na primer, to moe da se desi, ako obraiva prekida smeta u deljeni bafer koordinate pozicije kursora na ekranu, a pozadinski proces preuzima ove koordinate da bi prikazao kursor u odgovarajuoj poziciji na ekranu. Ako je deljeni bafer do prekida sadrao koordinate (0,0) i ako je obrada prekida izmenila ove koordinate na (1,1), tada je pozadinski proces mogao pre prekida da preuzme apscisu 0, a posle prekida ordinatu 1. Rezultat ovakvog sleda dogaaja je prikazivanje kursora na pogrenoj poziciji (0,1). Opisani problem se naziva problem sinhronizacije. On se reava onemoguavanjem prekida dok pozadinski proces preuzima sadraj deljenog bafera. Time se spreava da za vreme preuzimanja sadraja ovog bafera taj sadraj bude izmenjen. Problem sinhronizacije se javlja i izmeu procesa koji dele neki resurs raunara, a predstavlja direktnu posledicu nepredvidivosti prekljuivanja procesora sa procesa na proces. Prekljuivanja su nepredvidiva, jer ih izazivaju obraivai prekida, ija aktiviranja imaju sluajnu prirodu. Tako, ako dva procesa koriste isti tampa, tada njihov meusobni nesinhronizam moe da uzrokuje izmeanost znakova koje su oni uputili na isti tampa. Problem deljenih resursa se reava zauzimanjem deljenog resursa pre njegovog korienja samo za jedan proces i oslobaanjem tog resursa nakon njegovog korienja. To podrazumeva i privremeno zaustavljanje aktivnosti procesa, kada oni pokuaju da zauzmu prethodno zauzeti deljeni resurs. Zaustavljeni procesi nastavljaju svoju aktivnost jedan po jedan tek kada deljeni resurs bude mogue zauzeti za nekog od njih, to se desi nakon oslobaanja dotinog resursa. Zauzimanje i oslobaanje resursa podrazumeva izmenu stanja resursa. Stanja resursa su slobodan i zauzet. Ona se mogu reprezentovati vrednostima 1 i 0 (respektivno). Za uvanje stanja resursa potrebna je posebna deljena memorijska lokacija. Ova lokacija stanja resursa je

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

216

deljena, jer joj pristupaju razni procesi prilikom zauzimanja i oslobaanja resursa. Zauzimanje resursa podrazumeva izmenu njegovog stanja. Ova izmena se ostvaruje pisanjem vrednosti 0 u lokaciju stanja resursa. I oslobaanje resursa podrazumeva izmenu njegovog stanja. Ova izmena se ostvaruje pisanjem vrednosti 1 u lokaciju stanja resursa. Meutim, prilikom zauzimanja resursa, pre izmene njegovog stanja, mora se proveriti da li je resurs ve zauzet. Prema tome, pisanju vrednosti 0 u lokaciju stanja resursa, mora da prethodi itanje te lokacije. Poto su itanje i pisanje memorijskih lokacija nezavisne operacije, izmeu njih moe doi do obrade prekida. To znai da, nakon to jedan proces u okviru zauzimanja resursa proita lokaciju stanja resursa, obrada prekida moe izazvati prekljuivanje procesora na drugi proces. Ako taj drugi proces pokua da zauzme isti resurs, i on e proitati lokaciju stanja istog resursa. Na ovaj nain e oba procesa e preuzeti istu vrednost iz lokacije stanja resursa. Ako je preuzeta vrednost 1, oba procesa e zakljuiti da je resurs slobodan i zauzee ga. Nakon toga je mogu meusobni nesinhronizam ovih procesa. Problem se ne bi javio, ako bi u toku zauzimanja resursa itanje i pisanje lokacije stanja ovog resursa bili nedeljivi. Njihova nedeljivost se moe ostvariti eksplicitnim ili implicitnim onemoguenjem prekida. Eksplicitno onemoguenje prekida podrazumeva izmenu bita prekida u registru stanja. Implicitno onemoguenje prekida podrazumeva postojanje mainske naredbe, ije izvravanje obuhvata i itanje i pisanje iste memorijske lokacije. Ako se obezbedi nedeljivost itanja i pisanja lokacije stanja resursa, tada najvie jedan proces moe da zatekne resurs u stanju slobodan, jer se u lokaciju stanja resursa upisuje vrednost 0 odmah po itanju vrednosti 1. Prema tome, do oslobaanja resursa svi procesi mogu preuzeti samo vrednost 0 iz lokacije stanja resursa.

10.3. PITANJA
1. ta je inilo tehnoloku osnovu raunara tree generacije? 2. Zato je tehnologija integrisanih kola istisnula tehnologiju diskretnih poluprovodnika? 3. ta je karakterisalo treu generaciju raunara? 4. ta je karakterisalo mini-raunare? 5. ta je karakterisalo arhitekturu naredbi tree generacije raunara? 6. ta karakterie CISC raunare? 7. ta omoguuje mikro-programiranje? 8. ta je karakterisalo procesore raunara tree generacije? 9. ta je karakterisalo organizaciju radne memorije raunara tree generacije? 10. Kako se obavlja prenos podataka izmeu radne i masovne memorije kod raunara tree generacije? 11. ta karakterie multiprogramiranje? 12. ta je stepen multiprogramiranja? 13. ta karakterie memorijski preslikani ulaz-izlaz?

217

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.

25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.

ta je vano za implementaciju virtuelne memorije? Koji pojmovi su vezani za virtuelnu memoriju? Koje vrste lokalnosti izvravanja programa postoje? Koje stranice obrazuju radni skup? ta odreuje veliinu adresnog prostora? Ko obavlja pretvaranje virtuelne adrese u fiziku? ta vai za virtuelne i fizike strancie? Od ega se sastoji pretvaranje virtuelne adrese u fiziku? emu je proporcionalna veliina tabele stranica? ta sadre elementi tabele stranica? Da li je mogue translirati virtuelnu adresu 0100 u fiziku adresu 000, ako unutranja adresa stranice ima 2 bita, adresa fizike stranice ima 1 bit, adresa virtuelne stranice ima 2 bita, a tabela stranica sadri {-,-,1,-} u svojim elementima (krajnje levo je element sa indeksom 0, a krajnje desno je element sa indeksom 3)? Ko izaziva stranini prekid? Kada dolazi do izazivanja straninog prekida? Zato je uvedena asocijativna memorija? ta je karakteristino za asocijativnu memoriju? ta je potrebno da bi virtuelna memorija omoguila meusobnu zatitu istovremeno postojeih procesa? ta karakterie memorijsku hijerarhiju? ta karakterie skriveu memoriju? Koje slinosti postoje izmeu virtuelne i skrivene memorije? ta su uveli operativni sistemi raunara tree generacije? ta je zadatak obraivaa straninog prekida? Koje su mane raunara tree generacije? Da li za radnu memoriju sa reima od 4 bajta, primarna re moe da ima adresu 24? Da li za radnu memoriju sa reima od 4 bajta, sekundarna re moe da ima adresu 24? Koje su karakteristike formatiranog magnetnog diska? Od ega zavisi sredje vreme pristupa diska? Koji pojmovi su vezani za sabirnicu? Koje osobine ima sabirnica? Kako se dele sabirnice? Koji signali su vezani za arbitar sabirnice? Koje su karakteristike memorijske sabirnice? Koje su karakteristike ulazno-izlazne sabirnice? Kako se dele asocijativne memorije? Koliko komparatora ima asocijativna memorija sa punom asocijativnou?

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

218

48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.

ta sadre lokacije asocijativne memorije? emu je proporcionalan kvalitet asocijativne memorije? Kada skrivena memorija ukida pristup radnoj memoriji? Sa kojim konceptom koncept skrivene memorije nije u saglasnosti? Koje bite sadre lokacije asocijativne memorije iz kontrolera skrivene memorije? Kako se smanjuje veliina tabele stranica? Koje bite poseduju elementi tabele stranica? Koliko delova ima virtuelna adresa kod organizacije tabele stranica u dva nivoa? Koja je prednost organizacije tabele stranica u dva nivoa? ta ini osnovne nivoe memorijske hijerarhije? Ko brine o prebacivanju kopija sadraja lokacija sa jednog na drugi nivo memorijske hijerarhije? Kada se javlja problem sinhronizacije? Kako se reava problem sinhronizacije?

219

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

11. EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 1980. GODINE


11.1. SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 1980. GODINE
Tehnoloku osnovu raunara etvrte generacije su inila visoko integrisana kola (LSI, Large Scale Integration). Tehnologija visoke integracije se oslanjala na gotovo potpuno automatizovano projektovanje i omoguavala je gotovo potpuno automatizovanu masovnu proizvodnju, to je dovelo do velikog sniavanja cene. Pored toga, na ovaj nain proizvedeni ipovi (sa stotinama hiljada tranzistora na sebi) su imali prednosti u pogledu pouzdanosti, brzine rada, potronje energije i toplotnog zraenja. POLUPROVODNIKE MEMORIJE Zahvaljujui tehnologiji visoke integracije, poluprovodnike memorije (RAM, Random Access Memory) su istisnule iz upotrebe memorije sa magnetnim jezgricama, jer su omoguile pravljenje veih i pouzdanijih radnih memorija sa kraim vremenom pristupa i niom cenom. Po nainu funkcionisanja poluprovodnike memorije su podeljene na statike SRAM (Static RAM) i dinamike DRAM (Dynamic RAM). Kod statikih memorija, za uvanje binarnih vrednosti su sluile elije, organizovane kao flipflop, koje su sadrale do 6 tranzistora. Kod dinamikih memorija, za uvanje binarnih vrednosti su sluile elije koje su sadrale tranzistor i kondenzator, iji naboj je predstavljao binarnu vrednost. Ovakve elije su zahtevale periodino osveavanje, da bi se nadoknadilo pranjenje kondenzatora. Njihovo itanje je, iz istih razloga, bilo destruktivno. Zato je vreme ciklusa dinamike memorije bilo due od vremena njenog pristupa, za razliku od statike memorije, izmeu ijeg vremena ciklusa i vremena pristupa nije bilo razlike. I statike i dinamike memorije su imale dvodimenzionalnu organizaciju, radi obaranja proizvodne cene ipova. Tako su za 2n adresnih linija bila potrebna 2 dekodera adresa. Jedan je dekodirao n adresnih linija reda, a drugi je dekodirao n adresnih linija kolone kvadratne matrice. Oba dekodera su imala n ulaza i 2n izlaza i bili su jednostavniji, pa i jeftiniji, od dekodera adresa sa 2n ulaza i sa 22n izlaza, koji je bio neophodan za jednodimenzionalnu organizaciju (Slika 11.1.1).

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

220

adresa

. . . .

16 selektorskih linija (po jedna za svaku memorijsku lokaciju)

dekoder za jednodimenzionalnu organizaciju 4x4 selektorskih linija (po dve za svaku memorijsku lokaciju) dekoderi za dvodimenzionalnu organizaciju

adresa

Slika 11.1.1 Primer jedno i dvodimenzionalne organizacije radne memorije sa 16 lokacija Za proizvodnju bita DRAM ipa bilo je potrebno manje komponenti nego za proizvodnju bita SRAM ipa, pa je DRAM ip sadrao vie bita od SRAM ipa. Zbog toga je DRAM ip imao vei kapacitet od SRAM ipa za istu cenu, odnosno cena jednog bita DRAM ipa je bila nia od cene jednog bita SRAM ipa. Meutim, vreme pristupa DRAM ipa je bilo due od vremena pristupa SRAM ipa. Iz prethodnog je sledilo da su DRAM ipovi bili podesni za radnu memoriju, dok su SRAM ipovi bili podesni za skrivenu memoriju. Zato je kod DRAM ipova u prvom planu bilo poveanje njihovog kapaciteta i sniavanje njihove cene. Tome je doprinosilo i smanjenje broja adresnih linija DRAM ipova na polovinu, uz njihovo vremensko multipleksiranje, tako da su adresne linije prvo prenosile adresu reda, a onda adresu kolone. To je jo vie produavalo vreme pristupa DRAM ipa. Prema tome, za isti nain proizvodnje, DRAM ip je imao 16 puta vei kapacitet od SRAM ipa, od 8 do 16 puta due vreme pristupa i oko 10 puta niu cenu bita. MIKRO-RAUNARI Primena tehnologije visoke integracije je stvorila uslove za poboljanje mogunosti raunara, kao to je, na primer, proirenje adresnog prostora na 32 bita. Takav pristup je doveo do pojave velikih raunara etvrte generacije, kao to su raunari iz serije IBM 370-XA (eXtended Architecture), koja je predstavljala poboljani produetak IBM 370 familije raunara. Isti pristup je omoguio i pojavu mini-raunara etvrte generacije, koji su se, po osobinama kao to je primena koncepata virtuelne i skrivene memorije, ili proirenje adresnog prostora na 32 bita,

221

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

pribliili velikim raunarima etvrte generacije. Ipak izmeu velikih i mini-raunara je i dalje ostao jaz u pogledu brzine, veliine masovne memorije, broja terminala i, svakako, cene. Grupi mini-raunara etvrte generacije su pripadali raunari iz serije DEC VAX (Virtual Address eXtension), nastali kao poboljani nastavak PDP11 familije raunara. Drugi nain primene tehnologije visoke integracije je vodio u smeru sniavanje cene, na raun skromnije funkcionalnosti. Kao rezultat ovakvog pristupa, nastali su mikro-raunari (microcomputer). Pomenuti naziv je bio posledica, ne samo injenice da su cene i mogunosti mikro-raunara predstavljale samo deli cene i mogunosti mini i velikih raunara etvrte generacije, nego i injenice da su fizike dimenzije mikro-raunara bile znatno manje od fizikih dimenzija mini i velikih raunara. Tako je celi mikro-raunar zauzimao samo jednu tampanu plou, a njegov mikro-procesor (microprocessor) samo jedan ip. Za proizvoae, koji su iskoristili tehnologiju visoke integracije za sniavanje cena, na raun skromnije funkcionalnosti svojih proizvoda, karakteristine su mikro-procesorske familije ipova. Ovakve familije su nastajale oko pojedinih mikro-procesora i omoguavale su korisnicima da samostalno prave sopstvene mikro-raunare. Meu ovakvim proizvoaima prednjaio je Intel, koji je jo 1971. godine izbacio na trite prvi (etvoro bitni) mikro-procesor Intel 4004, a 1972. godine 8 bitni mikro-procesor Intel 8008. Njega je pratila Motorola, koja je 1974. godine izbacila na trite svoj 8 bitni mikro-procesor Motorola 6800. Prvi mikro-procesori su bili veoma skromnih mogunosti, imali su akumulatorske arhitekture, a njihova pojava je tek nagovestila buran razvoj mikroprocesorskih familija. Do njega je dolo krajem sedamdesetih godina, kada su se pojavili 16 bitni mikro-procesori kao to su Intel 8086 i Motorola 68000. Pojava ova dva mikro-procesora je oznaila poetak razvoja dve familije mikro-procesora (Intel 80x86 i Motorola 680x0), koje su imale ogroman uticaj na trite. Razvoj mikro-procesora se kretao u smeru poboljanja njihove funkcionalnosti, ime su se oni pribliavali mogunostima mini-raunara etvrte generacije. Proirenje mogunosti mikro-procesora se zasnivalo na korienju dodatnih ipova, koji su nazivani periferni procesori (peripheral processor), ako nisu bili namenjeni za odreeni mikro-procesor, a ako su bili namenjeni za odreeni mikro-procesor, tada su nazivani koprocesori (coprocessor). Ovakvi ipovi su bili specijalizovani za pojedine poslove, kao to je rukovanje virtuelnom memorijom, ili kao to je aritmetika realnih brojeva (na primer, Intel 8087 arithmetic coprocessor). Meu ipovima proizvedenim u tehnologiji visoke integracije postojali su i ipovi, namenjeni za sklapanje procesora eljenih osobina, kao to je, na primer, bio ip sa segmentnom aritmetiko-logikom jedinicom (bit-sliced arithmetic-logic unit), koji je omoguavao pravljenje aritmetiko-logike jedinice sa eljenom preciznou. Zahvaljujui veoma niskoj ceni mikro-raunara, prve njihove primene su vezane za razne oblike automatskog upravljanja. Ovakve primene su uticale da proizvoai mikro-raunara usvoje pristup otvorene arhitekture. Na primer, Intel je takav pristup zasnovao na svojoj Multibus sabirnici, a Motorola na svojoj VME

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

222

sabirnici. Zato nije sluajno da se tipina organizacija mikro-raunara nije razlikovala od tipine organizacije mini-raunara tree generacije. U okviru primena, vezanih za automatsko upravljanje, mikro-raunari su bili esto potpuno posveeni veoma jednostavnim poslovima, kao to je bilo, na primer, prikupljanje podataka u reimu prozivke (polling). U toku prozivke, mikro-procesori su neprekidno proveravali stanja pojedinih izvora podataka, radi otkrivanja prispea podataka i radi njihovog preuzimanja i uvanja do trenutka njihovog prosleivanja. Ovakav nain rada je stavljao mikro-procesor u poziciju da posreduje u prenosu svih podataka, pa se tada organizacija mikro-raunara nije razlikovala, po nainu rada, od organizacije raunara prve generacije. Primene, vezane za automatsko upravljanje, su dovele do pojave mikroraunara na ipu, nazvanih mikro-kontroleri (microcontroller), kao to je, na primer, bio mikro-kontroler Intel 8051. Niska cena mikro-raunara je omoguila da se oni nau u ulozi kontrolera, na primer, mini-raunara etvrte generacije i da budu potpuno posveeni poslovima upravljanja ureajima, kao to su ulazni i izlazni ureaji ili jedinice masovne memorije. Tako, u sluaju tipine organizacije mini-raunara etvrte generacije, uloga kontrolera ulaznih i izlaznih ureaja, kao i kontrolera jedinica masovne memorije dodeljena je mikro-raunarima (Slika 11.1.2).

PROCESOR

KONTROLER VIRTUELNE MEMORIJE KONTROLER SKRIVENE MEMORIJE RADNA MEMORIJA

JEDINICE MASOVNE MEMORIJE

ULAZNO IZLAZNI UREAJI

KONTROLER

... KONTROLER

SABIRNICA

Slika 11.1.2 Tipina organizacija mini-raunara etvrte generacije Skrivena memorija se zasnivala na SRAM ipovima, a radna memorija se zasnivala na DRAM ipovima. Ulazno-izlazni ureaji su obuhvatali video terminale i tampae.

223

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

PERSONALNI RAUNARI Mikro-raunari su omoguili interaktivni rad predvidivog odziva, jer su, zahvaljujui niskoj ceni, mogli u potpunosti biti posveeni jednom korisniku. Za ovakve, personalne raunare vezana je masovna upotreba grafikih terminala, iji ekran je sadrao matricu taaka ili piksela (PIXEL, PIcture matriX ELement), od kojih je svaka bila zasebno pristupana. Grafiki terminali su olakali interaktivni rad, jer su komunikaciju sa raunarom sveli na izbor mogunosti, prikazanih u obliku pregledno rasporeenih tekstualnih objanjenja (menu) ili crtea (icon). Uz prisustvo odgovarajueg pokazivakog ureaja (mouse), smanjena je upotreba tastature i pojednostavljen je i ubrzan rad korisnika. Za personalne raunare je vezana pojava magnetnih disketa (floppy diskette), koje su, bar u tom segmentu trita, istisnule magnetne trake, preuzimajui od njih arhivsku ulogu. Na trite personalnih raunara najvei uticaj je izvrio IBM, kada je 1981. godine izbacio IBM PC model personalnog raunara, koji je bio baziran na mikroprocesorskoj familiji Intel 8088 (verzija mikro-procesora Intel 8086, sa 8 bitnom sabirnicom). Operativni sistem MS-DOS (MicroSoft Disk Operating System) ovog personalnog raunara je proizveo Microsoft. IBM PC je imao otvorenu arhitekturu, to je dozvolilo mnogim proizvoaima da samostalno prave i prodaju njegove verne kopije (clone). Personalni raunari su otvorili novi i ogroman segment trita, sa izuzetno velikim povratnim uticajem na razvoj raunara. Nain upotrebe personalnih raunara je diktirao da oni imaju sopstveno rashlaivanje i da ne zahtevaju posebno klimatizovane prostorije. Mana personalnih raunara je bila da su onemoguili saradnju korisnika, jer je svaki korisnik imao svoj raunar, izolovan od ostalih raunara. Da bi se omoguila saradnja korisnika, bilo je neophodno povezati personalne raunare. Vezivanje personalnih raunara kao terminala za mini ili velike raunare posredstvom telefonskih linija je omoguavalo korisnicima da ouvaju oblike saradnje, kao to je razmena poruka i datoteka ili deljenje skupih raunarskih resursa. U ovakvim okolnostima, personalni raunari su emulirali terminale i omoguavali su korisnicima interaktivni rad u reimu ravnomerne raspodele procesorskog vremena mini i velikih raunara. Pri tome, na oba kraja telefonske linije, i sa strane personalnog raunara i sa strane mini ili velikog raunara, je bilo neophodno prisustvo modema. Modem je obavljao modulaciju i demodulaciju, odnosno pretvarao digitalne signale jednosmerne struje u analogne signale naizmenine struje i obrnuto. RAUNARSKE MREE Potreba meusobnog povezivanja, ne samo personalnih, nego i mini i velikih raunara, je dovela do razvoja lokalnih (LAN, Local Area Network) i globalnih (WAN, Wide Area Network) mrea raunara. Lokalne mree su omoguavale meusobno povezivanje raunara ija udaljenost nije prelazila nekoliko kilometara. Za to su korieni posebni komunikacioni kanali, sa propusnou od nekoliko

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

224

miliona bita u sekundi. Globalne mree su omoguavale meusobno povezivanje raunara udaljenih hiljadama kilometara. Za to su koriene javne telefonske linije sa propusnou od najvie nekoliko hiljada bita u sekundi. Prve globalne mree su razvijene za raunare tree generacije (ARPAnet, Advanced Research Project Agency), ali su ule u rairenu upotrebu tek za raunare etvrte generacije. Mree raunara su omoguile saradnju korisnika raznih raunara, ali pod uslovom da korisnici unapred znaju koju vrstu usluga mogu da dobiju na kome od tuih raunara, kao i da poznaju osobine ne samo svog, nego i osobine tuih raunara. To je oteavalo saradnju korisnika, jer su se raunari, povezani mreom, meusobno veoma razlikovali, poto su poticali od razliitih proizvoaa i imali razliite operativne sisteme. Da bi se bar donekle umanjile komplikacije saradnje korisnika, iji raunari su bili povezani mreom, odnosno, da bi se smanjio broj injenica, ije poznavanje je bilo neophodno za ovakvu saradnju, napravljeni su mreni operativni sistemi (network operating system). Oni su objedinili sisteme datoteka raznih raunara, povezanih mreom, u jedinstven sistem datoteka. Mreni operativni sistemi su predstavljali dogradnju postojeih operativnih sistema. Zahvaljujui mrenim operativnim sistemima, korisnici su mogli da pristupaju datotekama sa drugih, razliitih raunara kao svojim datotekama. Zadatak mrenog operativnog sistema je bio da prepozna kada korisnik eli da pristupi datoteci na tuem raunaru i da to omogui bez obzira na razlike izmeu korisnikog i tueg raunara. Iako su olakavali saradnju korisnika, mreni operativni sistemi nisu potpuno sakrivali od korisnika postojanje mree, jer nije bilo mogue idealno (potpuno) objediniti razliite sisteme datoteka u jedinstven sistem datoteka. SUPER-RAUNARI Zahvaljujui tehnologiji visoke integracije, raunari etvrte generacije su bili znatno bri od raunara tree generacije. Uprkos tome, oni nisu bili dorasli potrebama velikih nauno tehnikih prorauna, koji su sadrali numerike obrade ogromnog broja podataka i morali da budu zavreni u srazmerno kratkom vremenu. Na primer, obimni prorauni buduih temperatura vazduha, zasnovani na sloenim simulacionim modelima atmosfere, mogli su da poslue kao osnova vremenske prognoze samo ako su bili zavreni u relativno kratkom roku nakon prikupljanja trenutnih temperatura. Da bi se, u okviru postojee tehnologije, odgovorilo na ovakve zahteve, bilo je potrebno omoguiti to vie istovremenih obrada nezavisnih podataka. To nije bilo mogue bez paralelizma u radu procesora. Ovakav paralelizam se mogao ostvariti (1) uvoenjem vie procesora opte namene u organizaciju raunara etvrte generacije (Processor Level Parallelism, PLP), ali i (2) preklapanjem rada pojedinih sastavnih delova jednog procesora (Instruction Level Parallelism, ILP). Prvi pristup je zasnovan na mogunosti pravljenja komercijalnih vieprocesorskih raunara sa zajednikom sabirnicom.

225

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Drugi pristup je zasnovan na zapaanju da se izvravanje mainskih naredbi svakako sastoji od vie relativno nezavisnih aktivnosti, kao to su: 1. dobavljanje mainske naredbe 2. njeno dekodiranje 3. dobavljanje njenih operanada 4. izvravanje operacije 5. odlaganje rezultata Sekvencijalno obavljanje ovih aktivnosti zapoljava u svakom trenutku samo pojedine delove procesora. Razlaganje izvravanja naredbe na meusobno nezavisne korake iste duine, jednake ciklusu procesora, i posveivanje posebnog dela procesora svakom od ovih koraka, omoguuje preklapanje rada ovih delova. Pri tome se podrazumeva da su pomenuti delovi ili stepeni (stage) procesora povezani u protone strukture (pipeline). Svaki stepen iz protone strukture preuzima od svog prethodnika rezultate njegovog rada, a svom sledbeniku iz protone strukture prosleuje rezultat svog rada. Aktivnost svih zaposlenih stepena zapoinje istovremeno, jer su svi koraci iste duine. Znai, u prvom koraku rada procesora, prvi stepen dobavlja prvu mainsku naredbu. Zatim, u drugom koraku, prvi stepen dobavlja drugu mainsku naredbu, dok drugi stepen dekodira prvu mainsku naredbu. U treem koraku, prvi stepen dobavlja treu mainsku naredbu, drugi stepen dekodira drugu mainsku naredbu, a trei stepen dobavlja prvi operand prve mainske naredbe, i tako dalje (Slika 11.1.3). ciklusi procesora 1. naredba 2. naredba 3. naredba 4. naredba ... dobavljanje 1. naredbe dekodiranje dobavljanje 2. naredbe naredbe dobavljanje dekodiranje dobavljanje 3. operanada naredbe naredbe izvravanje dobavljanje dekodiranje dobavljanje 4. naredbe operanada naredbe naredbe odlaganje izvravanje dobavljanje dekodiranje 5. rezultata naredbe operanada naredbe odlaganje izvravanje dobavljanje 6. ... rezultata naredbe operanada odlaganje izvravanje 7. ... rezultata naredbe odlaganje 8. ... rezultata ... ... Slika 11.1.3 Preklapajui nain rada procesora sa protonom strukturom

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

226

Organizacija procesora sa protonom strukturom zahteva punu meusobnu nezavisnost stepena protone strukture, radi preklapanja njihovih aktivnosti. Pored toga, ona zahteva i pravovremeno (istovremeno) pripremanje podataka za svaki od zaposlenih stepena. Na primer, neophodno je stvoriti uslove da u istom procesorskom ciklusu budu dobavljeni mainski oblik jedne i operand druge naredbe. Pri tome, svi stepeni protone strukture nisu uvek zaposleni, jer izvravanje razliitih naredbi obuhvata razliit broj koraka. Na primer, za obavljanje naredbe sabiranja celih brojeva dovoljan je samo 1 korak, dok su za obavljanje naredbe sabiranja realnih (floating-point) brojeva potrebna bar 4 koraka: (1) poreenje eksponenata, (2) podeavanje frakcija, (3) sabiranje frakcija i (4) normalizacija rezultata. Zato su, na primer, stepeni, posveeni pojedinim koracima sabiranja realnih brojeva, uvek nezaposleni, kada se izvravaju samo naredbe celobrojnog sabiranja. Ostvarenje meusobne nezavisnosti pojedinih stepena protone strukture utie na arhitekturu naredbi. Na primer, kod aritmetikih naredbi i naredbi za rukovanje bitima se uvodi ogranienje da se njihovi ulazni i izlazni operandi mogu nalaziti samo u registrima procesora. Na taj nain se istovremeno mogu dobaviti dva operanda jedne naredbe i odloiti rezultat druge naredbe (to mora biti podrano unutranjom organizacinom procesora). Ovo ogranienje negativno utie na ortogonalnost naredbi i zahteva uvoenje posebnih naredbi prenosa podataka za prebacivanje sadraja iz lokacija radne memorije u registre procesora ( load) i obratno (store). Meutim, prenos podataka izmeu lokacija radne memorije i registara procesora je u konfliktu sa dobavljanjem naredbi, jer je u oba sluaja potrebno pristupanje radnoj memoriji. Ovakav konflikt se razreava podelom skrivene memorije na deo za naredbe (instruction cache) i deo za podatke (data cache). To omoguava da dobavljanje jedne naredbe bude istovremeno sa prenosom podataka u procesorski registar ili iz njega. Pod pretpostavkom da se posmatraju izvravanja naredbi koja u proseku obuhvataju k koraka i da se svaki korak zavri u toku jednog procesorskog ciklusa sa trajanjem od t vremenskih jedinica, srednje vreme izvravanja jedne naredbe bez preklapanja je:

k t
vremenskih jedinica. Za m izvravanja naredbi bez preklapanja potrebno je:

m k t
vremenskih jedinica. Pod prethodnim uslovima, za m izvravanja naredbi sa preklapanjem (m>k) potrebno je:

227

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

(k - 1) t
vremenskih jedinica da se napuni protona struktura i uspostavi puno preklapanje. Nakon toga u svakom od narednih m ciklusa se zavri po jedna naredba. Prema tome, za m izvravanja naredbi sa preklapanjem potrebno je ukupno:

(k - 1) t + m t
vremenskih jedinica. Znai, srednje vreme izvravanja jedne naredbe sa preklapanjem je:

(k - 1) t + t
m
vremenskih jedinica. Ovo srednje vreme je priblino jednako vremenu jednog procesorskog ciklusa za veliko m, jer je tada preklapanje dugotrajno, pa se vreme punjenja protone strukture raspodeljuje na veliki broj preklopljenih izvravanja naredbi. Iz prethodnog sledi da se srednje vreme izvravanja naredbe smanjuje kada k postaje vee, jer se tada izvravanje naredbe razlae na vie kraih koraka, pa procesorski ciklus moe biti krai. Meutim, za veliko k broj stepena protone strukture je veliki, pa je veliko i kanjenje signala u njoj. Zato praktini razlozi ograniavaju duinu protone strukture. Puni efekat preklapanja izostaje ako se smanji dugotrajnost preklapanja. Do toga dovodi pojava meuzavisnosti naredbi, kada rezultat izvravanja jedne naredbe predstavlja operand druge naredbe. To dovodi do zaustavljanja punjenja protone strukture drugom naredbom, dok njen neophodni operand ne postane raspoloiv. Na ovaj nain se protona struktura prazni. Isti efekat imaju izvravanja (uslovnih) upravljakih naredbi. Verovatnoa meuzavisnosti naredbi je proporcionalna duini protone strukture. to je ona dua, sa vie stepena, preklapa se izvravanje vie naredbi, pa tako rastu izgledi da se meu njima pojave meusobno zavisne naredbe. Znai, na dugotrajnost preklapanja utie arhitektura naredbi, jer je lake ostvariti dugotrajna preklapanja izvravanja jednostavnijih naredbi (za njih je protona struktura kraa, pa, poto se preklapa izvravanje manje naredbi, manja je i verovatnoa njihove meuzavisnosti). Poveavanju dugotrajnosti preklapanja mogu da doprinesu kompajleri, ako pri generisanju mainskog programa u njemu rasporeuju mainske naredbe tako, da su meusobno zavisne naredbe maksimalno razdvojene. Pri tome ne sme doi do izmene znaenja programa. Dugotrajnost preklapanja se moe ostvariti za istovrsne obrade dugakih nizova podataka, tipinih za velike nauno tehnike proraune. Za ovakve

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

228

proraune je tipino i da se izvravanje iste naredbe ponavlja za dugake nizove ili vektore podataka. Da bi se izbeglo viestruko dobavljanje i dekodiranje iste naredbe, uputno je uvesti vektorske naredbe. One omoguuju da se, nakon jednog dobavljanja i dekodiranja, ista operacija primenjuje na vektore podataka. Vektori podataka su smeteni ili u uzastopnim lokacijama radne memorije ili u posebnim vektorskim registrima procesora. U prvom sluaju, mainski oblik vektorske naredbe sadri poetne adrese vektora podataka, a u drugom sluaju, on sadri adresu grupe vektorskih registara. Vektorske naredbe se najee odnose na aritmetiku realnih brojeva. U toku izvravanja takvih vektorskih naredbi ostvaruju se dugotrajna preklapanja raznih koraka koji pripadaju obradama raznih elemenata vektora podataka. Izvravanje vektorskih naredbi zahteva da se u svakom procesorskom ciklusu pristupa jednom elementu vektora podataka. Ako je koriena radna memorija sa vremenom pristupa od n procesorskih ciklusa, tada je potrebna prepletena radna memorija (interleaved memory) u kojoj radnu memoriju sainjava n nezavisnih memorijskih modula. Pod pretpostavkom da su uzastopni elementi vektora podataka ravnomerno raspodeljeni po lokacijama ovih modula, istovremeno pokretanje itanja po jednog elementa vektora podataka iz lokacija razliitih memorijskih modula, nakon n procesorskih ciklusa, dovodi do preuzimanja n uzastopnih elemenata vektora podataka. Preklapanje isporuke pojedinih od ovih n elemenata sa istovremenim pristupanjem novoj grupi od n uzastopnih elemenata obezbeuje da srednje vreme pristupa elementu vektora podataka bude priblino jednako jednom procesorskom ciklusu. Ravnomerna raspodela elemenata vektora podataka po raznim memorijskim modulima se automatski ostvaruje kada manje znaajni biti adrese memorijske lokacije adresiraju memorijski modul, a znaajniji biti ove adrese predstavljaju lokalnu adresu modula (Slika 11.1.4).
adresa lokacije modula 000 010 100 110 001 011 101 111 adresa modula

Slika 11.1.4 Prepletena radna memorija sa osam lokacija raspodeljenih u dva memorijska modula

229

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Zahvaljujui prethodnoj interpretaciji adresa memorijskih lokacija, prvi element vektora podataka dospeva u nultu lokaciju memorijskog modula 0, drugi u nultu lokaciju memorijskog modula 1 i tako dalje. Prema tome, kada se adresa prvog elementa vektora podataka uputi ka prepletenoj radnoj memoriji (Slika 11.1.4), najznaajniji biti ove adrese istovremeno adresiraju 2 lokacije iz raznih memorijskih modula. Zato je mogue istovremeno pristupiti tim lokacijama. Pod uslovom da se uvek pristupa svim uzastopnim elementima vektora podataka, srednje vreme pristupa svakom elementu odgovara polovini vremena pristupa jednoj lokaciji za posmatrani primer prepletene radne memorije (Slika 11.1.4). Prepletena radna memorija omoguuje procesoru i kontrolerima da istovremeno pristupaju raznim modulima, jasno, ako postoje nezavisni pristupni putevi, to, takoe, doprinosi brem radu raunara. Za uspeno korienje vektorskih naredbi i prepletene radne memorije, neophodna je podrka kompajlera, radi pretvaranja repetitivnih delova programa, pisanih programskim jezicima visokog nivoa, u vektorske naredbe. Raunari etvrte generacije, iji su procesori radili u reimu preklapanja i uz to podravali vektorske naredbe, odskakali su po broju obraenih podataka u jedinici vremena od ostalih raunara etvrte generacije, pa su zasluili ime superraunari (supercomputer). Super-raunari su, pored vektorske jedinice, namenjene za podrku vektorskih naredbi, sadravali i preklapajuu skalarnu jedinicu, namenjenu za podrku obinih ili skalarnih naredbi. Mogunosti super-raunara su bile veoma impresivne, naroito kada su se posmatrali kratkotrajni periodi u kojima je ostvareno puno preklapanje u radu vektorske jedinice. Poto su ove mogunosti bile dorasle zahtevima velikih nauno tehnikih prorauna, super-raunari su svojom pojavom otvorili novi segment trita raunara. Iako je pojava prvih raunara iji su procesori radili u reimu preklapanja vezana za drugu generaciju raunara (IBM 7030 ili Control Data Corporation CDC 6600, na primer), a pojava prvih vektorskih raunara vezana za treu generaciju raunara (Control Data Corporation STring ARray, CDC STAR-100, i Texas Instruments Advanced Scientific Computer, TI ASC), tek je tehnologija visoke integracije stvorila uslove za puni trini prodor super-raunara. Uspostavljanje stabilnog trita super-raunara je vezano za pojavu super-raunara Cray-1, koga je 1976. godine proizveo Cray Research. Mogunosti super-raunara su poveavane multipliciranjem procesora, kao u sluaju superraunara Cray X-MP, koji se pojavio na tritu 1985. godine.

11.2. ISHODI EVOLUCIJE ARHITEKTURE RAUNARA U PERIODU OKO 1980. GODINE


ARHITEKTURA NAREDBI ZA DEC VAX11/780 Arhitektura naredbi za DEC VAX11/780 podrava adresni prostor od 32 bita, koji je organizovan u bajte. Ona podrava virtuelnu memoriju. Ova arhitektura

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

230

omoguuje rukovanje binarnim vrednostima velikim 1, 2, 4, 8 i 16 bajta, realnim vrednostima od 4, 8 i 16 bajta (floating-point), decimalnim ciframa izraenim kao etvorobitne vrednosti (binary-coded decimal, BCD), nizovima znakova (character string) i nizovima cifara (numeric string). U ovoj arhitekturi je na raspolaganju 16 registara od 32 bita, od kojih jedan slui kao pokaziva frejma (frame pointer), drugi slui kao pokaziva steka (stack pointer), a trei kao programski broja. Pored njih, postoji i status registar (processor status word), koji sadri uslovne bite (condition codes). Ova arhitektura omoguuje privilegovani nain rada procesora sa 3 nivoa privilegovanog rada (kernel mode, executive mode, supervisor mode). Ona podrava registarsko adresiranje, posredno adresiranje sa samouveanjem, posredno adresiranje sa samoumanjenjem, 4 vrste indeksnog adresiranja, posredno adresiranje, dvostruko posredno adresiranje sa samouveanjem i 3 vrste indeksnog posrednog adresiranja. Sva prethodna adresiranja se oslanjanju na registre. Pored njih, postoje jo 4 adresiranja (literal addressing mode), namenjena za male konstante, tako da ukupno ima 16 adresiranja. Adresiranja sa samouveanjem (samoumanjenjem) podrazumevaju da se sadraj korienog registra automatski uvea (umanji) nakon adresiranja. Dvostruka indirekcija znai da korieni registar sadri adresu memorijske lokacije sa adresom operanda. Indeksna indirekcija znai da je rezultat indeksnog adresiranja adresa memorijske lokacije sa adresom operanda. Kada se indeksno adresiranje koristi za pristupanje elementima nizova, tada se sabiraju poetna adresa niza sa proizvodom indeksa traenog elementa i duine ovog elementa, izraene u bajtima. Ovakav proizvod se naziva skalirani (scaled) indeks. Kod ostalih vrsta indeksnog adresiranja nema skaliranja, nego se sadraj registra sabira sa navedenim odstojanjem (displacement). Kombinovanje programskog brojaa sa posrednim adresiranjem sa samouveanjem odgovara neposrednom adresiranju. Slino, kombinovanje programskog brojaa sa dvostruko posrednim adresiranjem sa samouveanjem odgovara apsolutnom adresiranju, u kome se koristi apsolutna adresa. Kombinovanje programskog brojaa sa indeksnim adresiranjem odgovara relativnom adresiranju, a kombinovanje programskog brojaa sa indeksnim posrednim adresiranjem odgovara relativnom posrednom adresiranju. Mainski format naredbi ove arhitekture izgleda:
8

kod naredbe Mainski format naredbi obavezno obuhvata bajt sa kodom naredbe. Iza slede eventualno jo jedan bajt sa kodom naredbe i bajti za operande. Operanada moe biti od 0 do 6. Za sve operande su dozvoljena sva adresiranja, jasno, kada imaju smisla, tako da je ostvarena puna ortogonalnost naredbi i adresiranja. Adresiranja se

231

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

kodiraju kao kod arhitekture naredbi za DEC PDP11, uz razliku da kodovi operanda i registra zahtevaju po 4 bita. Arhitektura naredbi za DEC VAX11/780 obuhvata sledee tipove naredbi: 1. naredbe za rukovanje podacima (na primer, za prenos i konverziju podataka), 2. naredbe za rukovanje bitima (logike naredbe i naredbe pomeranja), 3. naredbe za celobrojnu binarnu aritmetiku (obuhvaene sve aritmetike operacije), 4. naredbe za celobrojnu decimalnu aritmetiku (obuhvaene sve aritmetike operacije), 5. naredbe za aritmetiku realnih brojeva (obuhvaene sve aritmetike operacije), 6. upravljake naredbe i 7. sistemske naredbe. ARHITEKTURA NAREDBI ZA INTEL 8086 Arhitektura naredbi za INTEL 8086 podrava adresni prostor od 20 bita, koji je organizovan u bajte. Ovaj adresni prostor nije raspoloiv ceo, nego su uvek raspoloiva samo njegova 4 segmenta sa 16 bitnim lokalnim adresnim prostorima: segment naredbi (code segment), segment steka (stack segment), segment podataka (data segment) i dodatni segment (extra segment). Prvi segment je namenjen za pristup mainskim naredbama, drugi za pristup steku, a poslednja dva za pristup podacima. Poloaj pristupanih segmenata odreuju njihove poetne ili bazne (base) adrese koje se nalaze u 16 bitnim segmentnim registrima CS (code segment), SS (stack segment), DS (data segment) i ES (extra segment). Zavisno od sadraja njihovih segmentnih registara, segmenti se mogu i preklapati. Adresa memorijske lokacije se odreuje kao suma skalirane bazne adrese segmenta i njegove unutranje (offset) adrese. Svrha skaliranja bazne adrese je da se ona dopuni sa 4 bita i postane 20 bitna adresa pre sabiranja. Zato se skaliranje sastoji od mnoenja bazne adrese sa 16, odnosno, od njenog dopunjavanja s desna sa 4 nule. Ova arhitektura omoguuje rukovanje binarnim vrednostima velikim 1 i 2 bajta, decimalnim ciframa izraenim kao etvorobitne vrednosti (packed decimal) i nizovima znakova (character string). Pored 4 segmentna registra, ova arhitektura nudi jo 4 registra podataka AX, BX, CX i DX od 16 bita. Znaajniji (high) i manje znaajan (low) bajt svakog od ovih registara se moe posmatrati kao zaseban registar od 8 bita. Njihove oznake su AH, AL, BH, BL, CH, CL, DH i DL (respektivno). Uloga registara podataka je delom unapred odreena, jer se oni koriste kao podrazumevajui registri. Tako su AX i DX podrazumevajui registri za mnoenje, deljenje i ulaz-izlaz, a CX registar je podrazumevajui za rukovanje nizovima znakova. Postoje i 4 adresna registra od 16 bita: SP (stack pointer), BP (base pointer, frame pointer), SI (source index register) i DI (destination index register). I njihova uloga je delom unapred odreena. Na kraju, postoje jo

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

232

programski broja IP (instruction pointer) od 16 bita i status registar FLAGS od 8 bita koji sadri uslovne bite (condition code). Arhitektura naredbi za INTEL 8086 podrava neposredno adresiranje, registarsko adresiranje, direktno adresiranje, posredno adresiranje (pomou registara BX, BP, SI i DI) i 3 vrste indeksnog adresiranja. Dve vrste indeksnog adresiranja se razlikuju samo po upotrebljenim registrima (indexed adresiranje koristi registre SI i DI, a base adresiranje koristi registre BX i BP). Trea ukljuuje po dva registra u indeksno adresiranje (based indexed adresiranje obuhvata parove registara, sastavljene od BX ili BP registara i od SI ili DI registara). Mainski format naredbi ove arhitekture izgleda:
8

prefiks
8

kod naredbe Mainski format naredbi obavezno obuhvata bajt sa kodom naredbe. Njemu moe da prethodi prefiks koji, na primer, menja podrazumevajui segment za naredbu sa ovim prefiksom. Pri tome se podrazumeva da se svaka naredba i svako od njenih adresiranja odnose na neki segment. Tako se upravljake naredbe odnose na segment naredbi, naredbe za rukovanje stekom na segment steka, a ostale naredbe uglavnom na segment podataka ili na dodatni segment. Iza koda naredbe mogu da slede do 4 dodatna bajta razliitog znaenja. Oni mogu da sadre: 1. unutranju adresu od 16 bita i baznu adresu segmenta od 16 bita, 2. oznake dva registra (od kojih je jedan namenjen za posredno adresiranje) i, eventualno, odstojanje (displacement) od 8 ili 16 bita, 3. neposredni operand od 8 ili 16 bita, ali i 4. relativnu adresu od 8 bita. Vrsta dozvoljenih operanada se menja od naredbe do naredbe, tako da ne postoji ortogonalnost naredbi i adresiranja. Arhitektura naredbi za INTEL 8086 obuhvata sledee tipove naredbi: 1. naredbe za rukovanje podacima (na primer, za prenos i konverziju podataka), 2. naredbe za rukovanje bitima (logike naredbe i naredbe pomeranja), 3. naredbe za celobrojnu binarnu aritmetiku (obuhvaene sve aritmetike operacije), 4. naredbe za celobrojnu decimalnu aritmetiku (obuhvaene sve aritmetike operacije), 5. upravljake naredbe, 6. sistemske naredbe i 7. ulazno-izlazne naredbe.

233

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

SEGMENTNA ORGANIZACIJA RADNE MEMORIJE Segmentna organizacija radne memorije, pomenuta kod arhitekture naredbi za INTEL 8086, omoguuje racionalno korienje radne memorije. Na primer, ako jedan segment sadri mainske naredbe, drugi stek a trei podatke, tada segment naredbi mogu da dele slike svih procesa koje odgovaraju izvravanju istog programa. Za takvo korienje segmenata vano je osigurati zatitu koja spreava: 1. da proces izlazi van svojih segmenata i 2. da se segmenti nenamenski koriste. Zatita od izlaska van segmenta se moe ostvariti primenom ideje graninog i baznog registra, jer svaki segment ima svoju duinu i svoju baznu adresu. Segment naredbi se namenski koristi, ako mu se pristupa samo radi izvravanja naredbi, dok se segmenti steka i podataka namenski koriste ako im se pristupa radi itanja ili pisanja memorijskih lokacija. Spreavanje nenamenskog korienja segmenata zahteva uvoenje prava pristupa segmentu, kao to su pravo izvravanja, pravo itanja i pravo pisanja segmenta. Ispravno korienje segmenata podrazumeva da se za svaki proces vee posebna tabela segmenata. Za svaki segment procesa u ovakvoj tabeli segmenata postoji poseban element sa baznom adresom segmenta, duinom segmenta, pravima pristupa segmentu i podatkom da li je element popunjen. Logike adrese iz adresnog prostora segmentirane radne memorije se sastoje od adrese segmenta i od njegove unutranje adrese. Adresa segmenta indeksira element tabele segmenata, radi korienja njegovog sadraja za proveru da unutranja adresa nije vea od duine segmenta i da proces ima pravo na traeni pristup adresiranoj lokaciji segmenta. Ako je provera uspena, fizika adresa nastaje sabiranjem (ili spajanjem) bazne adrese segmenta i njegove unutranje adrese (Slika 11.2.1).
adresa unutranja segmenta adresa logika adresa bazna adresa

duina segment naredbi segment steka segment podataka bit popunjenosti

prava

+
tabela segmenata fizika adresa

Slika 11.2.1 Pretvaranje logike adrese u fiziku kod segmentirane radne memorije

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

234

Prethodno opisana osnovna segmentacija se pretvara u punu segmentaciju, ako se broj segmenata povea, tako da biblioteke potprograma ili grupe promenljivih mogu biti smetene u zasebne segmente. Na ovaj nain je mogue ostvariti deljenje pojedinih biblioteka potprograma ili grupa promenljivih izmeu raznih procesa. U ovom sluaju ima smisla pojedinim procesima davati samo pojedinana prava pristupa pojedinim segmentima, na primer samo pravo itanja deljenog segmenta sa grupom promenljivih. Mogunost deljenja velike biblioteke potprograma je uslov za racionalno korienje ne samo radne, nego i masovne memorije. Takva deljena biblioteka (shared library) se ne mora uopte linkovati za pojedine programe, pa na taj nain ne mora zauzimati prostor u raznim izvrnim datotekama. Dovoljno je da svaka od izvrnih datoteka, koja sadri pozive potprograma deljene biblioteke, sadri i informaciju da je deljena biblioteka potrebna za vreme izvravanja programa. Pomenuta informacija omoguuje da se na poetku izvravanja programa proveri da li se potrebna deljena biblioteka nalazi u nekom od segmenata radne memorije. Ako se ne nalazi, ona se puni u segment radne memorije koji je prethodno za nju obezbeen. Nakon provere i njenog punjenja, u odgovarajui element tabele segmenata se smetaju duina segmenta deljene biblioteke, prava pristupa ovom segmentu i njegova bazna adresa. Posle toga mogu se pozivati potprogrami ove biblioteke kao da je ona statiki linkovana za izvravani program. Povezivanje biblioteke potprograma za program neposredno pre njegovog izvravanja se naziva dinamiko linkovanje (dynamic linking). Deljene biblioteke se nazivaju i dinamiki linkovane biblioteke ili DLL (dynamic link library). Za segmentaciju je zgodno da se osloni na virtuelnu memoriju da bi segmenti mogli biti vei od fizike memorije. Ovakav spoj se naziva stranina segmentacija (paged segmentation), jer se segmenti sastoje od celog broja stranica, pa se njihova duina izraava kao broj stranica. U ovom sluaju elementi tabele segmenata ne sadre baznu adresu segmenta, nego poetnu adresu tabele stranica dotinog segmenta, a logika adresa se sastoji od adrese segmenta, od adrese virtuelne stranice i od unutranje adrese. Adresa segmenta indeksira element tabele segmenata koji omoguuje proveru da li je adresa virtuelne stranice ispravna i da li je traeni pristup dozvoljen. U sluaju provere sa pozitivnim ishodom, indeksirani element tabele segmenata sadri poetnu adresu tabele stranica segmenta. Njene elemente indeksira adresa virutelne stranice, radi pronalaenja adrese fizi ke stranice i njenog spajanja sa unutranjom adresom (Slika 11.2.2).

235

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

adresa segmenta poetna adresa tabele stranica prava segmenta

adresa virtuelne stranice

unutranja adresa

logika adresa

duina

...
tabela segmenata bit popunjenosti

...

tabele stranica segmenata

adresa fizike stranice

unutranja adresa

fizika adresa

Slika 11.2.2 Pretvaranje logike adrese u fiziku kod stranine segmentacije ARHITEKTURA NAREDBI ZA INTEL 80386 Arhitektura naredbi za INTEL 80386 podrava fiziki adresni prostor od 24 bita, koji je organizovan u bajte. Ona podrava segmentaciju, virtuelnu memoriju i straninu segmentaciju. Segmentacija uvodi logiki adresni prostor od 16383 segmenta sa 20 bitnim lokalnim adresnim prostorima. Istovremeno je pristupano samo 6 segmenta: segment naredbi, segment steka i 4 segmenta podataka. Podaci o segmentima se nalaze u tabelama segmenata i obuhvataju 32 bitnu baznu adresu, segmenta, njegova prava pristupa i njegovu 20 bitnu duinu (izraenu u jedinicama 1 bajt ili 4 kilobajta). Postoji jedna globalna tabela segmenata za celi raunar, a za svaki proces moe biti vezana lokalna tabela segmenata. Adrese pristupanih segmenata se nalaze u 16 bitnim segmentnim registrima CS (code segment), SS (stack segment), DS (data segment), ES (extra segment), FS i GS. Sadraji ovih registara indeksiraju tabelu segmenata, radi pretvaranja logike adrese u lineranu

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

236

adresu, koja odgovara fizikoj ili virtuelnoj adresi, to zavisi od okolnosti. Logika adresa se sastoji od 16 bitne adrese segmenata, koja se nalazi u nekom od segmentnih registara, i od 32 bitne unutranje (offset) adrese segmenta. Linearna adresa ima 32 bita i nastaje kao suma 32 bitne bazne adrese segmenta i njegove 32 bitne unutranje adrese. Virtuelna memorija ima tabelu stranica u dva nivoa. Virtuelna adresa se sastoji od 10 bitnog indeksa tabele stranica sa prvog nivoa, 10 bitne adrese virtuelne stranice i 12 bitne unutranje adrese. Stranina segmentacija kombinuje prethodno opisanu segmentaciju i virtuelnu memoriju, tako da se prvo logika adresa pretvara u linearnu, odnosno virtuelnu adresu, a onda se virtuelna adresa pretvara u fiziku adresu. Ova arhitektura omoguuje rukovanje binarnim vrednostima velikim 1, 2 i 4 bajta, decimalnim ciframa izraenim kao etvorobitne vrednosti (binary coded decimal, BCD) i nizovima znakova (character string). Pored 6 segmentnih registra, ova arhitektura nudi jo 4 registra podataka EAX, EBX, ECX i EDX od 32 bita. Postoje i 4 adresna registra od 32 bita: ESP (stack pointer), EBP (base pointer, frame pointer), ESI (source index register) i EDI (destination index register). Na kraju, postoje jo programski broja EIP (instruction pointer) od 32 bita i status registar EFLAGS od 32 bita koji sadri uslovne bite (condition code). Ova arhitektura omoguuje privilegovani nain rada procesora sa 3 nivoa privilegovanog rada (kernel, system services, custom extensions). Arhitektura naredbi za INTEL 80386 podrava neposredno adresiranje, registarsko adresiranje, direktno adresiranje, posredno adresiranje i 3 vrste indeksnog adresiranja. Dve vrste indeksnog adresiranja se razlikuju po tome to jedna ne ukljuuje, a druga ukljuuje skaliranje. Trea vrsta indeksnog adresiranja podrazumeva istovremeno korienje obe prethodne vrste indeksnog adresiranja. Mainski format naredbi ove arhitekture izgleda:
8

prefiks (0 do 4 bajta)
8

kod naredbe (1 do 2 bajta)


8

kod adresiranja
8

podaci o indeksnom adresiranju


8

odstojanje (0, 1, 2 ili 4 bajta)


8

neposredni operand (0, 1, 2 ili 4 bajta) Mainski format naredbi obavezno obuhvata bajt sa kodom naredbe. Njemu mogu da prethode do 4 bajta prefiksa koji, na primer, omoguuju menjanje

237

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

podrazumevajueg segmenta za naredbu iji kod sledi iza prefiksa. Pri tome se podrazumeva da se svaka naredba i svako od njenih adresiranja odnose na neki segment. Tako se upravljake naredbe odnose na segment naredbi, naredbe za rukovanje stekom na segment steka, a ostale naredbe uglavnom na segment podataka ili na dodatne segmente. Iza koda naredbe mogu da slede kod adresiranja, podaci o indeksnom adresiranju, poput podatka o skaliranju, iznos odstojanja (displacement) i neposredni operand. Arhitektura naredbi za INTEL 80386 obuhvata sledee tipove naredbi: 1. naredbe za rukovanje podacima (na primer, za prenos i konverziju podataka), 2. naredbe za rukovanje bitima (logike naredbe i naredbe pomeranja), 3. naredbe za celobrojnu binarnu aritmetiku (obuhvaene sve aritmetike operacije), 4. naredbe za celobrojnu decimalnu aritmetiku (obuhvaene sve aritmetike operacije), 5. upravljake naredbe, 6. sistemske naredbe i 7. ulazno-izlazne naredbe. Ova arhitektura nudi posebnu podrku multiprogramiranju (multitasking) i dibagiranju. Ona emulira arhitekturu naredbi za INTEL 8086. PRINCIP RADA MIA Mi registruje svoje pomeranje po x ili y osi pomou mehanikih ili nekih drugih davaa pozicije. Kada to pomeranje bude vee od neke unapred zadane vrednosti, on ka raunaru alje poruku sa podacima o relativnoj promeni pozicije. Ovakva poruka sadri izmenu x i y pozicije, kao i stanje dirki mia. Do slanja ovakve poruke dolazi i kada se izmeni stanje bilo koje dirke mia. OSOBINE GRAFIKIH TERMINALA Osobine grafikog terminala zavise od njegovog grafikog adaptera koji u svom sastavu ima poluprovodniku video memoriju i video kontroler. Video memorija sadri piksele koji se prikazuju na ekranu, a video kontroler upravlja prikazivanjem ovih piksela na ekranu. Od broja lokacija video memorije zavisi broj piksela koji moe biti prikazan. Ako je grafiki terminal crno beli (monohromatski), za predstavljanje svakog piksela dovoljan je 1 bit video memorije, ili, eventualno, 1 bajt za predstavljanje raznih nijansi sivog. Za grafike terminale u boji potrebna su 3 bajta za predstavljanje jednog piksela, po jedan bajt za predstavljanje nijanse svake od 3 osnovne boje. Video memorija ima dva ulaza (dual port memory). Jedan od njih je okrenut sabirnici i omoguuje pristupanje lokacijama video memorije, radi preuzimanja ili izmena njihovih sadraja. To je potrebno za operacije, kao to je, na primer, pomeranje prozora po ekranu grafikog terminala (bit BLT operation, bit BLock

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

238

Transfer). Drugi ulaz video memorije je okrenut ka video kontroleru (ekranu) i omoguuje periodino osveavanje ekrana (Slika 11.2.3).
EKRAN

VIDEO KONTROLER

GRAFIKI ADAPTER

VIDEO MEMORIJA SABIRNICA

Slika 11.2.3 Dvoulazna video memorija i video kontroler Propusnost drugog ulaza je znatno via od propusnosti prvog ulaza, zbog velike brzine osveavanja ekrana. Zbog toga, na ekranu moe da se pojavi samo delimino izmenjen sadraj video memorije. Da bi se to spreilo, i ujedno podrala animacija, u grafiki terminal se ugrauju dve video memorije, tako da se sadraj jedne prikazuje na ekranu, dok se menja sadraj druge. Poto veliina video memorije znaajno utie na cenu grafikog terminala, vano je pronai nain da se smanji broj bita po pikselu. To se moe postii, na primer, kada istovremeno nisu potrebne sve nijanse boja iz palete, nego samo njihov mali podskup. Tako, ako su potrebne samo 4 odabrane nijanse od, na primer, 224 nijansi, tada su za svaki piksel dovoljna 2 bita. Pri tome, sadraji ova 2 bita indeksiraju elemente posebne tabele boja (color palette, color table, color map, video look-up table), koja sadri potpune kodove nijansi (znai, svaki od 4 elementa ove tabele je velik 3 bajta). U ovakvoj organizaciji video memorije, zadatak programera je da utie i na piksele, ali i na tabelu boja. Grafiki terminal se nalazi neposredno uz raunar (nije fiziki udaljen od njega), jer je video memorija grafikog terminala vezana za sabirnicu raunara. PRINCIPI RADA LOKALNIH MREA Lokalne mree omoguuju prenos poruka, sastavljenih od jednog ili vie paketa. Prenos poruka se odvija u skladu sa posebnim komunikacionim protokolima, koji precizno opisuju ponaanje poiljaoca i primaoca poruke. Na primer, ovakvi protokoli odreuju kako se poruke rastavljaju na pakete u toku slanja i kako se od paketa obrazuju poruke u toku prijema. Dve najpoznatije vrste lokanih mrea su eternet (Ethernet) i mrea sa putujuim etonima (token ring, token

239

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

bus). I jedna i druga vrsta lokalnih mrea se sastoji od prenosnika signala i od kontrolera koji upravljaju prenosom signala. One se razlikuju po nainu na koji kontroleri stiu pravo da emituju pakete. I kod jedne i kod druge vrste lokalnih mrea u svakom momentu najvie jedan kontroler ima pravo emitovanja, a svi ostali kontroleri sluaju. Za mree sa putujuim etonom se podrazumeva da se svi paketi prenose od kontrolera do kontrolera u predodreenom redosledu i uvek u istom smeru. Pri tome, izmeu kontrolera cirkulie jedan poseban paket sa etonom. Kontroler, koji primi ovaj paket, ima pravo da emituje jedan svoj paket. Nakon toga, on prosleuje dalje paket sa etonom, to uradi i kada nema sopstveni paket za emitovanje. Za eternet mree je karakteristino da kontroleri prate stanje prenosnika signala i da zapoinju emitovanje im ustanove da nema tue emisije. Pri tome, oni nastavljaju da prate stanje prenosnika signala i u toku svoje emisije, radi, eventualnog, otkrivanja kolizije, odnosno, istovremenog poetka vie emisija. U sluaju kolizije, svaki od kontrolera, koji su istovremeno zapoeli emisiju, odlae emitovanje za period sluajne duine, radi izbegavanja ponovne kolizije. Ako nema kolizije, kontroler nastavlja sa emitovanjem do kraja paketa, koji ukupno sadri do 1530 bajta. Ovakav nain dobijanja prava za emitovanje se oznaava skranicom CSMA/CD (Carrier Sense Multiple Access with Collision Detection). Eternet mree su najrairenija vrsta lokalnih mrea. Njihova duina se kree oko jednog kilometra. Na jednu eternet mreu se kai do 1024 raunara, to je definisano formatom paketa. Eternet mree nisu dobre za velika optereenja (preko 50%), jer im tada propusnost opada bre od poveanja optereenja zbog uticaja kolizija, iji broj ubrzano raste na veim optereenjima. Mree sa putujuim etonom su dobre za velika optereenja, jer i za najvea optereenja garantuju minimalnu propusnost svakom poiljaocu poruka. Mree sa putujuim etonom nisu dobre za mala optereenja, jer ne omoguuju dobro iskorienje propusnosti. VIEPROCESORSKI RAUNARI SA ZAJEDNIKOM SABIRNICOM Standardne sabirnice, koje sadre arbitar i podravaju vie aktivnih strana, pruaju prirodnu osnovu za izgradnju vieprocesorskih raunara, jer dozvoljavaju da vie procesora bude istovremeno zakaeno na njih. Mana ovakvog reenja je da se na sabirnicu moe zakaiti mali broj procesora, zbog pojave problema zaguenja sabirnice. Ovaj problem moe da se rei korienjem vie sabirnica, ali po cenu due razmene podataka izmeu organizacionih komponenti raunara, zakaenih na razne sabirnice. Pri tome se podrazumeva da postoji jedinstven adresni prostor, tako da svaki procesor moe da pristupi bilo kojoj lokaciji radne memorije, uz razliita vremena pristupa raznim lokacijama.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

240

Slika 11.2.4 sadri prikaz organizacije vieprocesorskog raunara sa vie lokalnih i globalnih sabirnica. Na ovoj ideji je zasnovan, na primer, NonStop multiprocesor, koga je krajem sedamdesetih godina proizveo Tandem.
RADNA MEMORIJA RADNA MEMORIJA

PROCESOR

...
LOKALNE SABIRNICE

PROCESOR

KONTROLER

KONTROLER

GLOBALNE SABIRNICE

Slika 11.2.4 Organizacija vieprocesorskog raunara sa vie lokalnih i globalnih sabirnica Ideja korienja vie sabirnica ima krajnost u unakrsnoj matrici (crossbar), Ona obezbeuje da izmeu svakog procesora i modula radne memorije postoji posebna sabirnica (Slika 11.2.5).

PROCESOR

PROCESOR

MODUL RADNE MEMORIJE

MODUL RADNE MEMORIJE

Slika 11.2.5 Unakrsna matrica Kvadrati na mestima susreta horizontalnih i vertikalnih sabirnica unaksne matrice simbolizuju prekidae, koji omoguuju dinamiko uspostavljanje direktinih veza izmeu pojedinih procesora i modula radne memorije. Ovakvi prekidai

241

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

podravaju istovremenu vezu svakog procesora sa razliitim modulom radne memorije. Unakrsne matrice su koriene kod velikih raunara tree generacije za povezivanje raznih organizacionih komponenti (Burroughs B5000, CDC Cyber-70 model 74). Mana unakrsnih matrica je da za veliki broj prekidaa one imaju visoku cenu, veliko kanjenje i malu pouzdanost. Skrivena memorija doprinosi smanjuju optereenja sabirnice, jer dok god se u skrivenoj memoriji nalaze kopije sadraja adresiranih lokacija, nema potrebe za izlazak na sabirnicu, radi pristupanja radnoj memoriji. Zato se skrivena memorija koristi za izbegavanje zaguenja sabirnice u vieprocesorskim raunarima, kod kojih su svi procesori zakaeni na istu sabirnicu (Slika 11.2.6).

PROCESOR

PROCESOR

KONTROLER SKRIVENE MEMORIJE

...

KONTROLER SKRIVENE MEMORIJE

MODUL RADNE MEMORIJE

...

MODUL RADNE MEMORIJE

SABIRNICA

Slika 11.2.6 Vieprocesorski raunar sa jednom sabirnicom i skrivenim memorijama Da bi skrivene memorije mogle biti koriene za odlaganje zaguenja sabirnice (Slika 11.2.6), neophodno je obezbediti usaglaenost sadraja raznih skrivenih memorija (cache coherency). Do neusaglaenosti sadraja raznih skrivenih memorija dolazi kada razni procesori istovremeno menjaju razne kopije sadraja iste lokacije. Ovakve neusaglaenosti se spreavaju, ako svi kontroleri skrivenih memorija prate aktivnosti na sabirnici (snoopy), radi ponitavanja (write invalidate) ili izmene (write broadcast) kopija sadraja lokacija, ije adrese su se pojavile na sabirnici u okviru transakcije pisanja. Pri tome je radna memorija izdeljena u module, radi primene podeljenih transakcija. Symmetry multiprocesor, koga je krajem osamdesetih godina na trite izbacio Sequent, predstavlja primer multiprocesora u okviru koga su mogla da se zakae do 32 Intel 80386 procesora na istu sabirnicu sa 64 linije podataka. Pri tome se izmeu svakog od ovih procesora i sabirnice nalazila posebna 64 kilobajtna skrivena memorija (write back, write invalidate). Osobenost vieprocesorskih raunara je da se kod njih problem sinhronizacije procesa ne moe reiti onemoguenjem prekida, jer kod njih nesinhronizam procesa nije posledica prekida i time izazvanih nepredvidivih prekljuivanja, nego je posledica stvarnog paralelizma procesa. Poto, dva procesa mogu biti istovremeno

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

242

aktivna na raznim procesorima vieprocesorskog raunara, oni mogu pristupati deljenim memorijskim lokacijama u nepredvidivom redosledu. To znai da, u primeru zauzimanja resursa, dva procesa mogu istovremeno zapoeti zauzimanje istog resursa. U ovakvim okolnostima neophodnu nedeljivost itanja i pisanja lokacije stanja resursa obezbeuje zakljuavanje sabirnice za vreme obavljanja ovih operacija. To se moe ostvariti pomou posebne upravljake linije za zakljuavanje sabirnice (lock). Ovo zakljuavanje moe biti eksplicitno ili implicitno. Eksplicitno zakljuavanje sabirnice omoguuje posebna naredba, tako to, na primer, zakljuava sabirnicu u ogranienom trajanju. Implicitno zakljuavanje sabirnice podrazumeva postojanje posebne mainske naredbe (readmodify-write) koja zakljua sabirnicu, na primer, u toku itanja i pisanja jedne memorijske lokacije. Vano pitanje je ta uraditi sa procesom vieprocesorskog raunara nakon neuspenog pokuaja zakljuavanja nekog resursa. Ako e resurs biti zauzet krae od vremena potrebnog za prekljuivanje, tada ima smisla ponavljati pokuaje zakljuavanja resursa dok se u tome ne uspe. Ovakvo ponavljanje zakljuavanja resursa predstavlja oblik radnog ekanja (spinning, spin lock, spin waiting). Ono je prihvatljivo samo ako je kratkotrajno. Meutim, ak i kada je kratkotrajno, ono moe da zagui sabirnicu, ako se vie procesa, sa raznih procesora, nalazi istovremeno u ovakvom radnom ekanju.

11.3. PITANJA
1. ta je inilo tehnoloku osnovu raunara etvrte generacije? 2. Zato je tehnologija visoko integrisanih kola istisnula tehnologiju integrisanih kola? 3. Zato su poluprovodnike memorije istisnule iz upotrebe memorije sa magnetnim jezgricama? 4. ta karakterie poluprovodnike memorije? 5. ta je karakterisalo etvrtu generaciju raunara? 6. ta je mikro-kontroler? 7. ta je karakterisalo personalne raunare? 8. ta je karakterisalo raunarske mree? 9. ta je karakteristino za protonu strukturu? 10. emu je priblino jednako srednje vreme izvravanja jedne naredbe u reimu rada sa dugotrajnim preklapanjem? 11. ta doprinosi dugotrajnosti preklapanja? 12. ta karakterie super-raunare? 13. ta kod segmentne organizacije radne memorije dele procesi, koji odgovaraju istom programu? 14. Koliko delova ima logika adresa iz segmentirane radne memorije? 15. ta sadre elementi tabele segmenata? 16. Koja su prava pristupa segmentu?

243

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

17. Kako se pretvara logika adresa iz segmentirane radne memorije u fiziku? 18. ta omoguuje puna segmentacija? 19. Koliko delova ima logika adresa kod stranine segmentacije? 20. Kako se pretvara logika adresa kod stranine segmentiacije u fiziku? 21. Zato je uvedena stranina segmentacija? 22. Kada mi alje poruku? 23. ta karakterie video memoriju grafikog terminala? 24. ta odreuje tabela boja grafikog terminala? 25. Koliko se moe prikazati nijansi boja i koliko je potrebno bita za piksel, ako tabela boja ima 4 elementa? 26. Koje su najpoznatije vrste lokalnih mrea? 27. Po emu se razlikuju etetnet i mree sa putujuim etonom? 28. Koje su lokalne mree dobre za velika, a koja za mala optreenja? 29. Kako se reava problem zaguenja sabirnice kod vieprocesorskih raunara sa zajednikom sabirnicom? 30. Kako se reava problem sinhronizacije procesa kod vieprocesorskih raunara sa zajednikom sabirnicom?

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

244

12. EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 1990. GODINE


12.1. SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 1990. GODINE
Pojava tehnologije veoma visoke integracije (VLSI, Very Large Scale Integration), koja je omoguila smetanje vie miliona tranzistora na jedan ip, stvorila je uslove za dalje poboljavanje mogunosti raunara. Tako su se pojavili jo moniji super-raunari, poput Cray Y-MP, na primer, a veliki raunari su dobili neke osobine super-raunara, kao to su vektorske naredbe, kod raunara iz IBM ESA/370 serije, nastale kao proirenje IBM 370 familije raunara. Najvei miniraunari su se pribliili, po mogunostima, velikim raunarima, kao DEC VAX 8800, a mikro-raunari, zasnovani, na primer, na mikro-procesorima Intel 80486 ili Motorola 68040, su dobili obeleja mini i velikih raunara, kao to je podrka aritmetici realnih brojeva, na primer. Ipak, cene super, velikih, mini i mikroraunara su se i dalje meusobno razlikovale priblino za po red veliine. To je bilo posledica injenice da su veliki raunari bili namenjeni za najvee poslovne obrade, koje su zahtevale podrku stotinama terminala ili disk jedinica, dok je zadatak mikro-raunara bio da opsluuju samo po jednog korisnika, bez obzira da li je re o slabijem personalnom raunaru sa MS-DOS operativnim sistemom ili o monijoj radnoj stanici sa UNIX operativnim sistemom. Mini-raunari su pokrivali primene izmeu prethodne dve krajnosti, a korienje super-raunara je bilo ogranieno na velike nauno tehnike proraune. RISC ARHITEKTURA Zahvaljujui primeni tehnologije veoma visoke integracije, mikroprogramske memorije su postale dovoljno velike da podre i najsloeniju arhitekturu naredbi, pa je sloenost arhitekture naredbi velikih, mini i mikroraunara dostigla svoj vrhunac. Skupovi naredbi su sadrali vie stotina naredbi, a podrani su na desetine adresiranja i tipova podataka. Meutim, tehnologija veoma visoke integracije je omoguila i znatno skraenje procesorskih ciklusa, pod uslovom da se upravljanje procesorom osloni na oienu upravljaku jedinicu. Radi toga je bilo neophodno temeljito pojednostavljenje CISC arhitekture naredbi. Ovo pojednostavljenje se zasnivalo na smanjenju broja naredbi u skupu naredbi, kao i na smanjenju broja podranih adresiranja i tipova podataka. Raunari sa pojednostavljenom arhitekturom naredbi su oznaeni skraenicom RISC (Reduced Instruction Set Computer). Ovako pojednostavljena arhitektura naredbi je dozvolila da se upravljanje procesorom prepusti oienoj upravljakoj jedinici i da se u znaajnijoj meri ostvari preklapanje rada nezavisnih delova procesora. Slian pristup se ve pokazao delotvornim kod procesora super-raunara. Njihova

245

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

arhitektura naredbi je takoe bila jednostavna i ona je usmerila razvoj RISC arhitekture. Na taj nain je ne samo skraen procesorski ciklus, nego je i smanjen prosean broj procesorskih ciklusa po naredbi sa 5 do 10, koliko je iznosio za CISC procesore, na svega 1 do 2 procesorska ciklusa, koliko je iznosio za RISC procesore. Ujedno je i znaajno olakano projektovanje procesora. Na neosporne prednosti RISC pristupa ukazali su: 1. rezultati IBM 801 projekta, koga je krajem sedamdesetih godina vodio John Cocke, 2. osobine RISC-I i RISC-II procesora, koje je na Berkli univerzitetu poetkom osamdesetih godina razvila grupa na ijem elu je bio David A. Patterson i 3. osobine MIPS procesora, koji je na Stanford univerzitetu poetkom osamdesetih godina razvila grupa na ijem elu je bio John L. Hennessy. Nakon toga, svi veliki proizvoai raunara su usvojili RISC pristup. Tako su nastali RISC procesori: Motorola 88000, Intel i860, IBM RS/6000 i DEC ALPHA, navedeni u hronolokom redosledu pojave na tritu. GRANICE RASTA BRZINE I GUSTINE TRANZISTORA NA IPU Skraenje procesorskog ciklusa, koje je omoguila tehnologija veoma visoke integracije, je bilo prirodna posledica smanjenja veliine tranzistora, odnosno, poveanja njihovog broja na ipu. Smanjenje veliine tranzistora po svim dimenzijama na polovinu, uz isti napon i snagu, uetvorostruuje brzinu tranzistora, uz napomenu da pod tim uslovima 4 puta vie tranzistora na ipu emituje i 4 puta veu toplotu. Vea brzina tranzistora znai manje kanjenje signala, pri njihovom prolasku kroz tranzistor, a to dalje znai da signal ima veu brzinu prostiranja i da mu je potrebno krae vreme da proe kroz ip. Zato procesorski ciklus moe da bude krai. Skraenju procesorskog ciklusa je doprinosilo i smanjenje veliine ipa, odnosno, skraenje ukupnog puta signala, to je, takoe, bila usputna posledica RISC pristupa. Smanjenje veliine ipa je izazvalo i smanjenje njegove proizvodne cene, jer je, zbog tehnologije proizvodnje, na istu povrinu (wafer) moglo da stane vie ipova (die), pa su se na njih rasporeivali priblino konstantni trokovi proizvodnje. Ubrzanje raunara, zasnovano na skraenju procesorskog ciklusa ima svoja fizika ogranienja, jer je skraenje procesorskog ciklusa ogranieno injenicom da brzina prostiranja signala ne moe prei brzinu svetlosti od oko 3108 metara u sekundi. Znai, procesorski ciklus mora biti toliko dugaak da u toku trajanja ciklusa signal moe da pree put od svog izvorita do svog odredita. To ograniava veliinu raunara, odnosno njegov prenik (diameter). Prenik raunara je jednak polovini puta koji signali mogu da preu u jednom procesorskom ciklusu, jer se podrazumeva, na primer, da signali odlaze od procesora ka radnoj memoriji, i da se vraaju, od radne memorije ka procesoru. Tako je ciklus DEC ALPHA 21164 procesora, koji se pojavio na tritu 1995. godine, iznosio oko 3.33

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

246

nano (10-9) sekunde. Za to vreme signal je mogao da pree duinu od oko jednog metra, ako se kretao brzinom svetlosti, pa je polovina te duine predstavljala prenik raunara, zasnovanog na ovom procesoru. I poveanje brzine tranzistora i njihovog broja na ipu imaju svoja fizika ogranienja. Tako, u proteklom periodu razvoja poluprovodnikih tehnologija, brzina tranzistora i njihov broj na procesorskom ipu su rasli priblino 60% godinje. Broj tranzistora na memorijskom DRAM ipu se poveavao za oko 120% godinje, uz poveanje njihove brzine za oko 3% godinje. Ovakvu pravilnost razvoja poluprovodnikih tehnologija je sredinom ezdesetih godina uoio Gordon Moore, jedan od osnivaa Intel-a. Meutim, takva razvojna linija ne moe da bude stalna, bar ne u pomenutim poluprovodnikim tehnologijama. Minijaturizacija tranzistora je mogua samo do granice nakon koje elektronske komponente postaju nepouzdane zbog meusobne interakcije. Slino, poveanje brzine tranzistora je mogue samo do granice nakon koje emitovanje toplote postaje nepremostiv problem. Upravo zbog problema hlaenja, brzina tranzistrora na DRAM ipovima je rasla znatno sporije od njihovog broja na ipu. DOMETI PRIMENE PARALELIZMA Pobrojana fizika ogranienja poveanja brzine raunara su postala vana, kada su njihovi dometi bili nedovoljni za reavanje praktino znaajnih problema, kao to je, na primer, problem analize radarskih i televizijskih slika sa satelita. Svaka ovakva slika se sastojala od 1010 piksela, a njena analiza je obuhvatala prijem i obradu pojedinih piksela slike. Obrada piksela je zahtevala obavljanje oko 103 operacija po pikselu. Poto je svakog dana sa satelita pristizalo na stotine slika, za obradu svih piksela je bilo potrebno dnevno obaviti oko 1015 operacija, ili, priblino, 1010 operacija u sekundi. Uz pretpostavku da je za svaku od ovih operacija dovoljan jedan procesorski ciklus, raunar bi mogao da obradi sve slike, pristigle sa satelita, ako bi imao procesorski ciklus 10-10 sekundi, odnosno, ako njegov prenik ne bi bio vei od 1.5 centimetra! Jasno, reavanje problema, kao to je analiza satelitskih slika, se moralo osloniti na istovremenu, odnosno paralelnu obradu nezavisnih podataka. Serijski prenos piksela iskljuuje mogunost istovremenog prijema vie piksela. Meutim, obrade pojedinih piksela su nezavisne, pa mogu biti istovremene. Prema tome, prijem piksela predstavlja sekvencijalan deo analize satelitske slike, koga nije mogue skratiti primenom paralelizma, dok obrada pojedinih piksela predstavlja nesekvencijalan deo analize satelitske slike, koga je mogue skratiti primenom paralelizma. Sagledavanje dometa primene paralelizma u analizi radarskih i televizijskih slika sa satelita zahteva da se uporede vreme serijske analize slike sa vremenom njene paralelne analize. U toku serijske analize slike, od ukupnog vremena t njene analize, s-ti deo (0<s<1) otpada na prijem svih njenih piksela, a (1-s)-ti deo otpada na serijsku obradu svih piksela satelitske slike,. Znai, proizvod:

247

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

s t
odgovara vremenu prijema svih piksela satelitske slike, a proizvod:

(1 - s ) t
odgovara vremenu serijske obrade svih piksela slike. Uz pretpostavku da se istovremeno obavljaju obrade n piksela (1<n 1010), tada vreme paralelne obrade svih piksela satelitske slike iznosi:

(1 - s ) t n
dok se vreme prijema ovih piksela ne menja. Prema tome, ukupno vreme paralelne analize satelitske slike iznosi:

s t +

1- s t n

Primena paralelizma u analizi satelitske slike dovodi do poboljanja koje se izraava kao odnos vremena potrebnog za serijsku i vremena potrebnog za paralelnu analizu slike:

t 1 1 n = = = 1- s 1 - s s n + 1 - s 1 + s (n - 1) s t + t s + n n n
Prethodni odnos se moe primeniti na svaku obradu podataka koja ima sekvencijalan deo, na koga primena paralelizma nema uticaja, i nesekvencijalan deo, na kog primena paralelizma ima uticaja. Prema tome, veliina poboljanja, izazvanog primenom paralelizma, zavisi od dva faktora. Jedan je udeo (s) koji u ukupnom vremenu obrade svih podataka ima njen sekvencijalan deo. Drugi je mogui stepen paralelizma (n) koji odreuje najvei mogui broj istovremenih obrada pojedinih podataka. Pri tome, izraz:

1 s
predstavlja graninu vrednost pomenutog poboljanja. Stvarno poboljanje se

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

248

pribliava svojoj graninoj vrednosti samo za visok stepen paralelizma, kada parametar n ima veoma veliku vrednost. Na prethodno opisane domete primene paralelizma ukazao je G. M. Amdahl jo 1967. godine. Primena paralelizma dovodi do znaajnijeg skraenja obrada podataka samo ako je njen sekvencijalan deo veoma kratak i ako je mogui stepen paralelizma visok. Upravo te osobine ima analiza satelitskih slika. Kod nje su postojali uslovi za masovni paralelizam, jer je stepen paralelizma mogao da raste do 1010. Pored toga, sve istovremene obrade su 1. identine, jer su pikseli obraivani na isti nain i 2. jednostavne, jer su obraivane jednobitne vrednosti, koje su reprezentovale pojedine piksele. To je dozvoljavalo da se napravi paralelni raunar sa vie od 10000 jednostavnih jednobitnih procesora, koji su nazvani procesni elementi. Oni su mogli da u dovoljno kratkom vremenu obrade sve piksele slike. Uz ne suvie kratak procesorski ciklus od 10-6 sekundi, svaki od ovakvih procesnih elemenata mogao je da obavi 106 jednociklinih operacija u sekundi, pa je 104 procesnih elemenata moglo da obavi 1010 operacija u sekundi. Meutim, mana ovakvog paralelnog raunara je da je on bio specijalizovan samo za reavanje problema analize satelitskih slika. Iz prethodnog sledi da se uspeh u primeni paralelnih raunara ostvaruje na raun njihove optosti, odnosno da zavisi od njihove specijalizovanosti za reavanje pojedinih klasa problema. KONKURENTNO PROGRAMIRANJE Uspena primena paralelnih raunara je zavisila, pre svega, od njihovog programiranja. Za programiranje paralelnih raunara nisu bili podesni programski jezici visokog nivoa, jer su oni predstavljali apstrakciju raunara koji sekvencijalno izvravaju programe, odnosno za koje se podrazumeva da izvravaju naredbe jednu za drugom u redosledu odreenom u programu. Redosled izvravanja naredbi je bio vaan, jer su naredbe opisivale izmene stanja promenljivih, a konano stanje ovih promenljivih je zavisilo od redosleda izmena njihovih stanja. Ovakav model raunanja (computational model) je nazvan model upravljakog toka (control flow model, control driven model), jer su na redosled izvravanja naredbi uticale upravljake naredbe, izmenom stanja programskog brojaa. Znai, nakon opisivanja sekvencijalnog reenja problema pomou programskog jezika visokog nivoa, programer je morao da ga prilagodi paralelnom raunaru pronalaenjem nezavisnih delova programa, koji su mogli da se izvravaju paralelno. Nakon njihovog pronalaenja, sledilo je i preureenje programa, radi stvaranja uslova da potencijalni paralelizam postane mogu. Potreba izriitog opisivanja paralelizma je izazvala dogradnju postojeih sekvencijalnih programskih jezika visokog nivoa. Tako su nastali konkurentni programski jezici (concurrent programming language).

249

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Korienje konkurentnih programskih jezika je sloenije od korienja sekvencijalnih programskih jezika. Zato se javila potreba za pronalaenjem naina izraavanja algoritama kod kojih je paralelizam prirodna posledica pravljenja algoritma, a ne rezultat posebnog napora programera. Tako je, na primer, nastao model toka podataka (data flow model, data driven model). On je podrazumevao da se meuzavisnost operacija, sadranih u obradi podataka, oznai vezivanjem izlaznih operanada jedne operacije za ulazne operande druge operacije. Tako nastaje usmereni graf, u iji vorovima se nalaze okviri. Svaki okvir sadri polje za kod operacije, polja za ulazne operande i polje za izlazni operand (Slika 12.1.1).
b c d + b c d *

+ *

usmereni graf izraza (a+b)*(c-d)

usmereni graf okvira izraza (a+b)*(c-d)

Slika 12.1.1 Princip toka podataka Model toka podataka je uspostavio redosled samo za meusobno zavisne operacije. Sve druge operacije, iji ulazni operandi su raspoloivi, odnosno, iji okviri su popunjeni, mogu da se izvravaju u bilo kom redosledu, znai i paralelno. Iako je model toka podataka nudio prirodni paralelizam, on nije posedovao optost modela upravljakog toka, pa nije doiveo ozbiljniju praktinu primenu. Za ovaj model su bile potrebne posebne organizacije raunara, okrenute popunjavanju okvira i selekciji popunjenih okvira, kao i posebni funkcionalni programski jezici. Nepostojanje zgodnog naina za opisivanje paralelizma i iz toga proizala visoka cena razvoja konkurentnih programa su bili donekle ublaeni pojavom oblika paralelizma koji su nevidljivi za programere. U ovakve oblike paralelizma je spadalo preklapanje rada stepena protone strukture procesora (ILP), koje je dovodilo do smanjenja srednjeg broja ciklusa po naredbi, ubrzavajui tako izvravanje korisnikih programa i to bez ikakve intervencije programera. Ipak, prethodno je zahtevalo asistenciju kompajlera, u ijoj nadlenosti je bilo

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

250

rasporeivanje mainskih naredbi na nain koji ne menja funkcionalnost programa, a koji omoguuje vee preklapanje rada stepena protone strukture procesora. Pojava paralelizma, koji je bio nevidljiv za programera, se javljala i kao posledica prisustva vie od jednog procesora opte namene u raunaru (PLP). Ovi procesori su omoguavali: 1. ili poveanje propusnosti raunara, odnosno poveanje broja izvrenih programa u jedinici vremena, 2. ili poveanje raspoloivosti raunara, odnosno, spreavali su da kvar jednog procesora onemogui rad raunara. Vie procesora opte namene su ugraivani jo u raunare prve generacije, radi poveavanja njihove raspoloivosti. Takva praksa je postala redovna kod najmonijih raunara ve od tree generacije raunara, radi poveanja njihove propusnosti. Prisustvo vie procesora u organizaciji raunara nije zahtevalo bilo kakvu intervenciju programera, jer je rukovanje ovim procesorima bilo u nadlenosti operativnog sistema. KLASIFIKACIJA RAUNARA Programeri su mogli svesno da iskoriste prisustvo vie procesora za istovremeno izvravanje raznih programa, posveenih reavanju pojedinih potproblema istog problema. Ovakva izvravanja su obrazovala protonu strukturu, ako su rezultati jednog izvravanja prosleivani drugom posredstvom datoteka. Na primer, takvu strukturu su mogli da obrazuju pretprocesor, kompajler i linker programa napisanih programskim jezikom C, ako su se istovremeno izvravali na raznim procesorima, pripremajui za izvravanje razne izvorne C programe. Ovakav paralelizam je karakterisala saradnja nekoliko procesora koji su izvravali razne programe, radi obrade razliitih podataka, a meusobnu saradnju su ostvarivali povremenom razmenom podataka. Ovaj paralelizam se sutinski razlikovao od masovnog paralelizma, karakteristinog po angaovanju velikog broja procesnih elemenata na identinoj obradi razliitih podataka, kao kod analize satelitskih slika. Poto je u prvom sluaju svaki procesor izvravao poseban program, radi obrade posebnih podataka, ovakav paralelni raunar je karakterisalo vie tokova naredbi i vie tokova podataka. Engleska skraenica za ovaj naziv je MIMD (Multiple Instruction stream Multiple Data stream). U sluaju masovnog paralelizma, svaki procesni element je izvravao isti program, radi obrade posebnih podataka, pa je ovakav paralelni raunar karakterisao jedan tok naredbi i vie tokova podataka. Engleska skraenica za ovaj naziv je SIMD (Single Instruction stream Multiple Data stream). SIMD raunar predstavlja pooptenje vektorske jedinice procesora super-raunara, kod kojih je vie raznih podataka bilo obraivano na isti nain, ali u reimu preklapanja. Raunar sa jednim procesorom je karakterisao samo jedan tok naredbi i jedan tok podataka. Engleska skraenica za ovaj naziv je SISD (Single Instruction stream Single Data stream). Preostali sluaj kombinovanja posmatranih brojeva tokova naredbi i podataka je odgovarao

251

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

paralelnom raunaru sa vie tokova naredbi i sa jednim tokom podataka. Engleska skraenica za ovaj naziv je MISD (Multiple Instruction stream Single Data stream). Prethodnu klasifikaciju aritektura raunara je predloio M. J. Flynn jo 1966. godine. Pri tome je MISD raunar uveden vie da upotpuni klasifikaciju, nego to je imao praktinu vrednost. U MISD raunare bi spadao, na primer, paralelni raunar, specijalizovan za prepoznavanje oblika (pattern recognition), kod koga svi procesori preuzimaju iste podatke, ali svaki od njih ih obrauje na razliit nain, radi provere da li podaci pripadaju odreenoj vrsti, odnosno da li odgovaraju odreenom obliku. Definiciji MISD raunara donekle odgovara sistoliki raunar (systolic array), sastavljen od prostorno pravilno rasporeenih procesnih elemenata, koji su meusobno povezani, da bi kroz njih prolazili podaci u toku svoje obrade (Slika 12.1.2).

PROCESNI ELEMENT PROCESNI ELEMENT

RADNA MEMORIJA

...
PROCESNI ELEMENT

Slika 12.1.2 Sistoliki raunar Sistoliki raunari su usko specijalizovani za reavanje odreenih problema, kao to je brza furijeova transformacija, na primer. Jedini tok naredbi SIMD raunara obrazuju skalarne i vektorske naredbe. One dolaze do skalarne jedinice, koja izvrava skalarne naredbe, a vektorske naredbe upuuje procesnim elementima, od kojih je sastavljena vektorska jedinica (Slika 12.1.3).

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

252

VEKTORSKA JEDINICA PROCESNI ELEMENT SKALARNA JEDINICA PROCESNI ELEMENT SPOJNA MREA

...
PROCESNI ELEMENT

Slika 12.1.3 SIMD raunar Skalarna jedinica upravlja procesnim elementima iz vektorske jedinice. Svaki od procesnih elemenata u svom sastavu sadri sopstvenu radnu memoriju, kojoj moe da pristupa i skalarna jedinica. Svi aktivni procesni elementi sinhrono (istovremeno) izvravaju istu vektorsku naredbu, obraujui pri tome podatak iz sopstvene radne memorije. Zato nema potrebe za posebnim programskim usklaivanjem rada procesnih elemenata. Radi meusobne saradnje, procesni elementi su povezani posebnom spojnom mreom (interconnection network). Veze koje spajaju skalarnu jedinicu sa procesnim elementima predstavljaju snopove adresnih, upravljakih i linija podataka, posredstvom kojih skalarna jedinica pristupa lokacijama lokalnih radnih memorija procesnih elemenata, odnosno upravlja radom procesnih elemenata. SIMD raunari su specijalizovani za reavanje pojedinih klasa problema, kao to je obrada satelitskih slika. Oni predstavljaju dodatak raunarima opte namene. Naredbe izvravanog programa sa raunara opte namene dolaze do skalarne jedinice SIMD raunara, a u obrnutom smeru, nakon izvravanja programa, teku rezultati obrade. Za SIMD raunare je izraen problem pouzdanosti, jer to je vei broj procesnih elemenata, to je manja verovatnoa da su svi oni istovremeno ispravni. Za razliku od SIMD raunara, kod koje je rad procesnih elemenata sinhron, kod MIMD raunara procesori su nezavisni, pa nema vremenske usklaenosti njihovog rada. Zato je osnovni problem kod MIMD raunara kako programski uskladiti, odnosno sinhronizovati rad procesora, tako da meusobno uspeno sarauju. Poto se saradnja procesora ostvaruje razmenom podataka, zadatak sinhronizacije je da osigura konzistentnost podataka, odnosno da sprei da procesori pristupaju podacima iju obradu drugi procesori nisu zavrili. To se ostvaruje ili potovanjem strogih pravila pri pristupanju lokacijama zajednike radne memorije, kojoj svi procesori ravnopravno pristupaju, ili potovanjem protokola razmene poruka po komunikacionim linijama koje povezuju procesore. U prvom sluaju, zajednika radna memorija je sastavljena od nezavisnih memorijskih modula, tako da razni procesori mogu istovremeno da pristupaju raznim modulima (Slika 12.1.4).

253

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

PROCESOR1

MODUL RADNE MEMORIJE1 SPOJNA MREA

...
PROCESORn

...
MODUL RADNE MEMORIJEm

Slika 12.1.4 Multiprocesor Procesori pod istim uslovima pristupaju lokacijama zajednike radne memorije, ako su podjednako udaljeni od njenih modula. Pri tome, procesori i moduli zajednike radne memorije moraju da budu na to kraoj meusobnoj udaljenosti, da bi vreme pristupa lokacijama zajednike radne memorije bilo to krae. Zbog toga se za ovakvu organizaciju kae da je vrsto spregnuta (tightly coupled), a ovakvi MIMD raunari su nazvani multiprocesori (multiprocessor). Zajednika radna memorija olakava programiranje, jer bilo koji procesor moe da izvrava bilo koji od nezavisnih programa i, pri tome, da pristupa bilo kom podatku. To oslobaa programera potrebe da poznaje sve detalje organizacije multiprocesora. Meutim, praktini razlozi spreavaju ukljuivanje velikog broja procesora u multiprocesor, jer tada zajednika radna memorija i spojna mrea postaju usko grlo, ije otklanjanje ima suvie visoku cenu. Problem proirljivosti (scalability) multiprocesora se donekle ublaava uvoenjem modula zajednike radne memorije sa razliitim vremenima pristupa. Ovakvi multiprocesori se oznaavaju skraenicom NUMA (Non Uniform Memory Access). Kod NUMA pristupa svaki od modula zajednike radne memorije se pridruuje jednom od procesora, tako da je vreme pristupa lokacijama sopstvenih modula znatno krae od vremena pristupa lokacijama tuih modula. NUMA pristup se oslanja na pretpostavku da procesori najee pristupaju svom modulu zajednike radne memorije. Mana ovoga pristupa je da programer mora da poznaje organizaciju NUMA multiprocesora, da bi na najbolji nain rasporedio programe i podatke po modulima radne memorije. Ovo je neophodno, jer svi procesori nisu u identinom poloaju, pa ne mogu da izvravaju sve programe i da pristupaju svim podacima pod istim uslovima. Problema proirljivosti nije izraen kod MIMD raunara u kojima se saradnja procesora zasniva na razmeni poruka. U ovom sluaju, svaki procesor poseduje sopstvenu radnu memoriju, kojoj je samo on pristupa, a spojna mrea povezuje procesore (Slika 12.1.5).

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

254

RADNA MEMORIJA

PROCESOR

...
RADNA MEMORIJA PROCESOR

SPOJNA MREA

Slika 12.1.5 Multiraunar Sopstvena radna memorija daje procesorima veliku samostalnost. Pri tome, na mestima svakog od parova sastavljenih od procesora i radne memorije moe da bude potpun raunar. Zbog meusobne nezavisnosti, ovakvi raunari mogu da budu na velikim meusobnim udaljenostima, pa se za ovakvu organizaciju kae da je labavo spregnuta (loosely coupled). Ovakvi MIMD raunari su nazvani multiraunari (multicomputer). Poto razmena poruka po potencijalno veoma dugakim komunikacionim linijama predstavlja jedini nain saradnje raunara koji ulaze u sastav multiraunara, oni su meusobno prilino izolovani. To zahteva od programera da poznaju detalje organizacije multiraunara, radi ispravne raspodele programa i podataka. Ovde je vanost ispravne raspodele vea nego kod NUMA multiprocesora, jer nema mogunosti za direktno pristupanje programima ili podacima iz tuih radnih memorija, pa je odgovornost programera vea, a njegov zadatak tei. Raunari iz multiraunara su tipino meusobno povezani eternet lokalnom mreom (Slika 12.1.6).
RADNA MEMORIJA RADNA MEMORIJA

PROCESOR

...
SABIRNICE

PROCESOR

KONTROLER ETERNET MREA

KONTROLER

Slika 12.1.6 Multiraunar organizovan oko eternet lokalne mree Multiraunar moe sadrati vie eternet mrea, spojenih pomou posebnih ureajia (bridge, gateway, router). Vie spojenih eternet mrea obrazuju internet.

255

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Broj, vrstu i prostorni raspored raunara, zakaenih za lokalnu mreu, odreuje i menja po svojim potrebama korisnik. Znai, lokalne mree omoguuju korisniku da oblikuje organizaciju ovakvog multiraunara po svojoj volji. OTPORNOST NA KVAROVE Kvar pojedinih raunara iz multiraunara ne izaziva obavezno kraj rada celog multiraunara, nego, eventualno, samo njegovo usporenje, odnosno produenje vremena odziva. Zato je multiraunar prirodna osnova za primene kod kojih je vaan nastavak rada i nakon pojave pojedinanih kvarova, odnosno za primene koje zahtevaju posedovanje otpornosti na kvarove (fault tolerance). Ovakve primene se oslanjaju na vie raunara, koji mogu, na primer, istovremeno da obavljaju iste poslove i da razmenjuju rezultate svojih aktivnosti, radi njihovog poreenja. Ako se pojave razliiti rezultati, tada se, kao ispravan, usvaja rezultat koga je proizvela veina raunara (majority voting). Mogue je i da samo jedan, glavni raunar obavlja zadani posao, a da dodatni, rezervni (stand by) raunar prati njegov rad. Glavni raunar periodino prolazi kroz taku oporavka, u kojoj razmenjuje poruke sa rezervnim raunarom, da bi dokazao da je ispravan, i da bi ostavio podatke o stanju obrade. Na osnovu ovih podataka, u sluaju kvara glavnog raunara, rezervni raunar moe da rekonstruie obradu od poslednje take oporavka. RISC PROCESORI RISC procesori su u potpunosti podreeni poveanju brzine izvravanja programa. Njihova pojava je usledila nakon to su programski jezici visokog nivoa istisnuli iz iroke upotrebe asemblerske jezike, pa je tako opao znaaj izraajnosti asemblerskih naredbi, a briga o racionalnom korienju mogunosti arhitekture naredbi je prela u iskljuivu nadlenost kompajlera. Skupovi naredbi RISC procesora sadre uglavnom samo neophodne naredbe, kao to su naredbe prenosa podataka izmeu lokacija radne memorije i registara procesora (load, store), naredbe celobrojne aritmetike i aritmetike realnih brojeva, kao i logike i upravljake naredbe. Uz to, RISC procesori uglavnom dozvoljavaju samo neposredno, registarsko, i indeksno adresiranje. Oni uglavnom podravaju samo celobrojne i realne tipove podataka (raznih preciznosti). Izvedba RISC procesora zauzima mnogo manje prostora, nego izvedba CISC procesora. To se direktno koristi za: 1. skraivanje procesorskog ciklusa, 2. poveanje broja registara opte namene, 3. proirenje adresnog prostora, 4. poveanje paralelizma u radu procesora, 5. ugradnju skrivene memorije u procesor i 6. prebacivanje upravljanja virtuelnom memorijom u nadlenost procesora. Vei broj registara opte namene (32 i vie) omoguuje dranje vrednosti vie promenljivih u procesoru i tako, smanjujui potrebu za pristupanjem radnoj

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

256

memoriji, ubrzava izvravanje programa. Isti efekat ima i uvoenje vie skupova registara (register window), pri emu svaki skup registara podrava izvravanje razliitog potprograma, ime se izbegava korienje steka u radnoj memoriji. Vei adresni prostor, na primer, 64 bita, kao kod DEC ALPHA procesora, je potreban, jer se prosena veliina programa udvostrui svake godine, odnosno zauzme jedan bit vie u adresnom prostoru. Za RISC procesore je vano poveanje paralelizma u njihovom radu. To se postie, na primer, uvoenjem vie nezavisnih linija (three-bus architecture) koje od registara vode do aritmetiko-logike jedinice i natrag (Slika 12.1.7).
registri

...

aritmetiko logika jedinica

Slika 12.1.7 Vezivanje registara i aritmetiko-logike jedinice pomou 3 sabirnice Ovakva veza (datapath) registara i aritmetiko-logike jedinice omoguuje da u jednom procesorskom ciklusu sadraji dva registra stignu do aritmetikologike jedinice, kao i da se rezultat njene aktivnosti smesti u trei registar. Paralelizam u radu RISC procesora se poveava, na primer, tako to se preputa stepenu njegove protone strukture, koja je zaduena za dobavljanje naredbi, da uveava programski broja. To podrazumeva da je ovaj stepen osposobljen za sabiranje. Uvoenje vie nezavisnih stepeni za izvravanje operacija celobrojne aritmetike ili aritmetike realnih brojeva omoguuje paralelno obavljanje vie naredbi za celobrojnu aritmetiku i za aritmetiku realnih brojeva. Procesori koji mogu da izvravaju istovremeno vie naredbi, na primer do 4, kao IBM RS/6000 i DEC ALPHA, se nazivaju super-skalari (superscalar). Kod super-skalara se podrazumeva da dobavljanje naredbe, njeno dekodiranje, dobavljanje operanada i odlaganje rezultata traju krae od izvravanja operacije. Zahvaljujui tome, mogue je istovremeno pokrenuti vie nezavisnih naredbi (multiple instruction issue) koje e istovremeno zauzimati razliite stepene procesora, namenjene za izvravanje raznih operacija (celobrojne aritmetike, aritmetike realnih brojeva ili prenosa podataka izmeu lokacija radne memorije i registara). Istovremeno izvravanje vie naredbi komplikuje reakciju na prekide. Problem se javlja zbog istovremenog izvravanja vie operacija i tekoe da se

257

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

spolja precizno ustanovi ta se u procesoru deavalo u trenutku prekida. Prekidi su precizni (precise interrupt), ako pokretanju mehanizma prekida prethodi zavretak svih zapoetih izvravanja naredbi. U suprotnom su prekidi neprecizni (imprecise interrupt). Ugradnja skrivene memorije u RISC procesore doprinosi poveanju brzine izvravanja programa. U tom pogledu, posebno je vano razdvajanje skrivene memorije na deo namenjen samo za naredbe i na deo namenjen samo za podatke, jer tada mogu da se potpuno preklapaju dobavljanje naredbe i prenos podataka izmeu lokacije radne memorije i registra procesora. Na skrivenu memoriju se moe sa uspehom primeniti i ideja memorijske hijerarhije, pa se tako javljaju skrivene memorije u dva nivoa. Na viem nivou je manja skrivena memorija, sa kraim vremenom pristupa, a na niem nivou je vea skrivena memorija sa duim vremenom pristupa. Gornji nivo skrivene memorije se pribliava svojim vremenom pristupa potrebama procesora, a donji nivo svojim kapacitetom utie na smanjenje verovatnoe promaaja. Dva nivoa skrivene memorije su, na primer, ugraena u RISC procesor DEC ALPHA 21164. Kod njega se na viem nivou nalaze dve skrivene memorije, svaka sa po 8 kilobajta, jedna namenjena za mainske naredbe, a druga za podatke, dok se na niem nivou nalazi jedna skrivena memorija sa 96 kilobajta. Brzini izvravanja programa doprinosi i ubrzanje pretvaranja virtuelne adrese u fiziku, koje je posledica prebacivanja upravljanja virtuelnom memorijom u nadlenost procesora. Formati mainskih naredbi RISC procesora su pravilni, znai imaju isti raspored polja i istu duinu za sve naredbe. To omoguuje bre dekodiranje i vee preklapanje obavljanja naredbi, jer u ovakvim mainskim naredbama nema dodatnih rei, kao kod mainskih formata promenljive duine, koje bi izazvale odlaganje dobavljanja naredne mainske naredbe. Iz istih razloga, za svaki tip mainske naredbe su, u njenom mainskom kodu, predodreena adresiranja. Tako je indeksno adresiranje predvieno samo za naredbe prenosa podataka (load i store), koje jedine mogu da pristupe lokacijama radne memorije, radi prenosa njihovog sadraja u registre procesora, ili u obrnutom smeru. Aritmetike i logike naredbe pristupaju samo sadrajima registara procesora i, eventualno, neposrednim operandima, prisutnim u mainskom formatu naredbe. Za upravljake naredbe je predvieno ili registarsko adresiranje, kod koga je odredina adresa u nekom od registara procesora, ili relativno adresiranje, kod koga odredina adresa nastaje kao zbir neposredne vrednosti iz mainskog formata naredbe i sadraja nekog od registara procesora. Ovakvo ogranieno korienje adresiranja doprinosi preklapanju izvravanja naredbi, jer se tako izbegava da se podudare, na primer, iste vrste pristupanja radnoj memoriji u toku izvravanja raznih naredbi. Nepromenljivost mainskih formata naredbi uzrokuje da je veliina neposrednih operanada ograniena, jer je za njih na raspolaganju samo deo bita iz mainskog formata naredbi.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

258

Veliina ubrzanja rada RISC procesora zavisi od kompajlera. Njegov zadatak je ne samo da generie najbolje nizove mainskih naredbi, nego i da mainske naredbe u ovim nizovima tako rasporedi, da se ostvari to dugotrajnije preklapanje njihovih izvravanja. Tako, kompajler razdvaja meusobno zavisne naredbe, kod kojih, na primer, rezultat izvravanja jedne naredbe predstavlja ulazni operand druge i ije preklapanje nije mogue. Meusobno zavisne naredbe se razdvajaju umetanjem izmeu njih drugih, nezavisnih mainskih naredbi. Ovakvo, statiko rasporeivanje je naroito vano za uspean rad super-skalara. Poto postojanje status registra sputava slobodu kompajlera kod statikog rasporeivanja, RISC procesori uglavnom ne sadre status registre, pa ni uslovne bite. Zato se rezultat (vrednost 0 ili 1) provere vaenja nekog uslova (vee, manje i slino) odlae u zadani registar opte namene, to je u nadlenosti posebnih naredbi. Uz njih obino postoje i uslovne upravljake naredbe, koje dovode do izmene toka izvravanja programa, zavisno od toga da li zadani registar sadri vrednost 0 ili vrednost 1. Alternativa je i da se naredbe provere i uslovne upravljake naredbe spoje u jednu naredbu, ije izvravanje zahteva dvostruko vie ciklusa od preostalih naredbi. Poto i izvravanje upravljakih naredbi skrauje duinu preklapanja, kompajler ima zadatak da izbacuje ovakve naredbe iz mainskog programa, kad god je to mogue. Na primer, kompajleri prevode petlje (loop) sa unapred zadanim i nepromenljivim brojem ponavljanja njihovog tela, tako, da zadani broj puta ponove generisanje tela takvih petlji (loop unrolling). Na taj nain upravljake naredbe postaju suvine, a generisani niz mainskih naredbi osigurava dugotrajno preklapanje njihovog izvravanja. Negativan uticaj upravljakih naredbi na duinu preklapanja se neutralie i preklapanjem njihovog izvravanja sa izvravanjem naredbi koje ne zavise od izvravanja pomenutih upravljakih naredbi. Zadatak kompajlera je i da obezbedi da se najee koriene vrednosti nalaze u registrima procesora, jer se tako izbegava pristupanje radnoj memoriji. Uslovne upravljake naredbe su posebno problematine za RISC procesore, jer protoni reim rada ovih procesora uzrokuje da se dobavljanje nove naredbe preklapa sa dekodiranjem uslovne upravljake naredbe. Prema tome, da bi se izbegao zastoj (stall) punjenja protone strukture, odnosno, da bi se izbeglo skraenje duine preklapanja, pre izvravanja uslovne upravljake naredbe mora se odluiti da li se dobavlja naredba iza nje ili njena ciljna naredba. Takva odluka se zasniva na dinamikom predvianju ishoda izvravanja uslovnih upravljakih naredbi (dynamic branch prediction). Loe predvianje dovodi do izvravanja pogrenih naredbi. Ono se prekida im bude poznat ishod izvravanja uslovne upravljake naredbe, ali tada sleduje ponitavanje efekata pogreno izvrenih naredbi. Da bi to bilo mogue, neophodno je koristiti ili privremene lokacije za smetanje rezultata izvravanja pogrenih naredbi, ili sauvati vrednosti koje su ovi rezultati izmenili. Dinamiko predvianje ishoda izvravanja uslovnih upravljakih naredbi se zasniva na pamenju ishoda njihovih prethodnih izvravanja i na pretpostavci da e

259

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

ponovljena izvravanja imati isti ishod. Kompajler moe da doprinese tanosti dinamikog predvianja, ako postoji nain da ostavi podatak o sigurnim ishodima izvravanja uslovnih upravljakih naredbi. Poveanju duine preklapanja naredbi moe da doprinese i izvravanje naredbi van redosleda (out of order). Na primer, kada se dobavi zavisna naredba, za ije izvravanje je potreban rezultat izvravanja prethodne naredbe, umesto zastoja u punjenju protone strukture, moe se nastaviti sa dobavljanjem sledee naredbe. Na taj nain, odlaganje izvravanja zavisne naredbe ne izaziva zastoj u punjenju protone strukture, dok iza nje ima nezavisnih naredbi. Radi otkrivanja zavisnosti naredbi, u toku njihovog obavljanja procesor vodi evidenciju (scorebording) o korienju svojih resursa, kao to su registri. Za registre ovakva evidencija obuhvata podatak da li obavljane naredbe itaju ili piu neki od registara. Kada se dobavi nova naredba koja ita iz nekog registra, a za taj registar je ve evidentirano da jedna od obavljanih naredbi pie u njega, tada je jasno da nova naredba zavisi od jedne od izvravanih naredbi. Meuzavisnost naredbi se moe otkloniti, kada one ne prosleuju jedna drugoj rezultate svog rada, nego samo koriste isti registar. Tako, ako obavljana naredba ita iz nekog registra, a nova naredba pie u isti registar, tada je meuzavisnost ovih naredbi mogue otkloniti korienjem rezervnog registra procesora za drugu naredbu (register renaming, Tomasulo algorithm). Uz RISC procesore su neophodne velike radne memorije, jer su njihovi mainski programi znatno dui od mainskih programa CISC procesora. Za RISC procesore je karakteristino da podravaju memorijski preslikani ulaz-izlaz, kao i da potuju IEEE 754 standard za aritmetiku realnih brojeva.

12.2. ISHODI EVOLUCIJE ARHITEKTURE RAUNARA U PERIODU OKO 1990. GODINE


IEEE 754 STANDARD ZA ARITMETIKU REALNIH BROJEVA IEEE 754 standard definie 3 formata mainske normalizovane forme realnih brojeva: 1. jednostruka preciznost od 32 bita sa najznaajnijim bitom za predznak, narednih 8 bita za podeeni eksponent (excess 127 exponent) i preostalih 23 za frakciju, 2. dvostruka preciznost od 64 bita sa najznaajnijim bitom za predznak, narednih 11 bita za podeeni eksponent (excess 1023 exponent) i preostalih 52 za frakciju, 3. proirena preciznost od 80 bita koja je namenjena za interno korienje u toku raunanja, radi smanjivanja greke, izazvane odbacivanjem prekobrojnih cifara. Ovaj standard definie i denormalizovane (denormalized) brojeve. Oni se koriste za predstavljanje manjih vrednosti od onih koje se mogu predstaviti

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

260

mainskom normalizovanom formom. Na taj nain se problem potkoraenja (underflow) ublaava. IEEE 754 standard uvodi i oznake za beskonano (infinity) i neodreeno (not a number), koje nastaju kao rezultat deljenja konanog broja nulom ili deljenja beskonanog sa beskonanim. Znai, ove oznake mogu da se koriste u aritmetikim operacijama realnih brojeva. ARHITEKTURA NAREDBI ZA MIPS RISC procesori, kao to su MIPS, INTEL 860, MOTOROLA 88000 i SPARC, imaju slinu arhitekturu. Arhitektura naredbi za MIPS podrava adresni prostor od 32 bita, koji je organizovan u bajte. Ona omoguuje rukovanje binarnim vrednostima velikim 1, 2 i 4 bajta, kao i realnim vrednostima od 4 i 8 bajta (floating-point). U ovoj arhitekturi je na raspolaganju 16 registara od 32 bita ili 16 registara od 64 bita za realne brojeve. Ova arhitektura podrava virtuelnu memoriju. Ona podrava neposredno, registarsko i indeksno adresiranje. Mainski formati naredbi ove arhitekture imaju fiksnu veliinu.
6 5 5 5 5 6

kod naredbe ulazni reg1 ulazni reg2 izlazni reg

konstanta

kod naredbe

Prethodni mainski format naredbi odgovara aritmetikim i logikim naredbama, iji ulazni operandi su u registrima oznaenim kao ulazni reg1 i ulazni reg2, a izlazni operand se smeta u registar oznaen kao izlazni reg. Ovaj mainski format odgovara i naredbama pomeranja koje koriste polje konstanta.
6 5 5 16

kod naredbe

ulazni reg

izlazni reg

konstanta

Prethodni mainski format naredbi odgovara naredbama prenosa podataka.


6 5 5 16

kod naredbe ulazni reg1 ulazni reg2

konstanta

Prethodni mainski format odgovara upravljakim naredbama. Za uslovne upravljake naredbe se podrazumeva: (1) da njihov uslov zavisi od rezultata poreenja sadraja dva registra ili (2) da je taj uslov odreen sadrajem registra, u kome se nalazi kod logike vrednosti (0 ili 1).
6 10

kod naredbe

konstanta

Prethodni mainski format odgovara bezuslovnim upravljakim naredbama. Arhitektura naredbi za MIPS obuhvata sledee tipove naredbi: 1. naredbe za rukovanje podacima (za prenos podataka),

261

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

2. naredbe za rukovanje bitima (logike naredbe i naredbe pomeranja), 3. naredbe za celobrojnu binarnu aritmetiku (obuhvaene sve aritmetike operacije), 4. naredbe za aritmetiku realnih brojeva (obuhvaene sve aritmetike operacije), 5. upravljake naredbe i 6. sistemske naredbe. INTEL PENTIUM PRO PROCESOR Arhitektura naredbi za INTEL PENTIUM Pro je proirena, u donosu na arhitekturu naredbi za INTEL 80386, naredbama za aritmetiku realnih brojeva, naredbama za rukovanje potronjom energije, naredbama za multimedijalne primene (MMX), kao i manjim brojem drugih naredbi razliite namene. Naredbe za rukovanje potronjom energije su namenjene, pre svega, raunarima sa baterijskim napajanjem. Naredbe za multimedijalne primene olakavaju obradu zvuka i slike, jer podravaju SIMD model obrade podataka. INTEL PENTUIM Pro procesor je super-skalar koji moe da izvri do 3 naredbe u jednom procesorskom ciklusu (three-way superscalar). Unutar ovoga procesora se nalazi RISC jezgro sa 12-stepenom protonom strukturom, koja dozvoljava izvravanje naredbi van redosleda. Naredbe RISC jezgra predstavljaju mikro-naredbe za naredbe INTEL PENTIUM Pro procesora. Ovaj procesor se oslanja na dva nivoa skrivene memorije. Prvi nivo sainjavaju skrivena memorija za podatke (L1 data cache) i skrivena memorija za naredbe (L1 instruction cache), svaka od po 8 kilobajta. Drugi nivo (L2 cache) se sastoji od 96 kilobajtne statike poluprovodnike memorije, spojene sa procesorom posebnom 64-bitnom sabirnicom. EVOLUCIJA MASOVNE MEMORIJE Tehnologija magnetnih diskova se uspostavila kao glavni oslonac masovne memorije, jer je uspeno pratila porast zahteva, zahvaljujui svom stalnom usavravanju. Tako, kapacitet diskova proseno godinje raste za priblino 60%, a njihovo srednje vreme pristupa se smanjuje za oko 3% godinje. Rast kapaciteta se zasniva na poveanju gustine magnetnog zapisa. Zahvaljujui tome, dimenzije magnetnih diskova su se smanjivale, kao i njihovo srednje vreme pristupa, jer su se smanjivale kako udaljenosti susednih staza, tako i njihova duina. Zato su glave diskova za krae vreme prelazile sa staze na stazu, kao to je i svaka staza prolazila za krae vreme ispod njih. Racionalno korienje spoljnih staza diska, ija duina je vea od duine unutranjih staza, je dovelo do poveanja broja sektora na spoljanjim stazama. Srednje vreme pristupa diska se moe smanjiti na svoj k-ti deo, ako se koristi k diskova u nizu (disk array), tako da se istovremeno pristupa blokovima na raznim diskovima. Ovaj pristup se zasniva na ideji koja je primenjena kod prepletene radne

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

262

memorije. On je poznat pod skraenicom RAID (redundant array of independent disks). Za RAID je standardizovano 6 razliitih organizacija, oznaenih kao RAID 0, RAID 1, RAID 2, RAID 3, RAID 4 i RAID 5. Prva podrava smanjenje srednjeg vremena pristupa, jer omoguuje raspodelu susednih blokova na 4 diska. Znai, u proseku je mogue pristupiti nizu od 4 susedna bloka za vreme pristupa jednom bloku. Meutim, mana prve organizacije je nedovoljna pouzdanost, jer je ona upotrebljiva samo ako su sva 4 diska ispravna. Ovde je vano uoiti da je verovatnoa da sva 4 diska budu ispravna manja od verovatnoe da bilo koji od njih bude pojedinano ispravan. Druga i ostale organizacije poveavaju pouzdanost, tako to uvode redundantne (dodatne, rezervne) diskove. Na primer, druga organizacija koristi 8 diskova, 4 kao osnovna i 4 kao rezervna, tako da rezervni diskovi predstavljaju kopiju osnovnih diskova. Preostale organizacije poveavaju pouzdanost korienjem kodova za otkrivanje i oporavak od greaka. Tehnologija optikih diskova nudi vei kapacitet od tehnologije magnetnih disketa, pa su zato optiki diskovi preuzeli od magnetnih disketa arhivsku ulogu. Primer optikog diska je CD (compact disc). CD koristi lasersku tehnologiju da izmeni optika svojstva podloge na koju se u obliku spirale upisuju podaci. Postoji vie standarda koji opisuju nain zapisivanja podataka na disku. Prvobitni standard je opisivao samo diskove koji na sebi sadre audio materijal (Red Book, IEC 908). Kasnije nadogradnje standarda (Blue Book, Yellow Book, itd.) su donele mogunosti zapisa podataka (CD-roM) , video materijala (Video CD) i fotografija (Photo CD) i mogunost dopisivanja podataka (multisession, CD-XA). Radi univerzalne upotrebe optikih diskova, za organizaciju podataka, odnosno za sistem datoteka optikog diska postoji meunarodni standard ISO 9660. Optiki disk sa podacima zapisanim po ovom standardu moe da se koristi na svim raunarima koji podravaju ovaj standard. Postoje 3 vrste CD optikih diskova, oznaene kao CD (read only), CD-R (recordables) i CD-RW (rewritables). Prva vrsta se proizvodi pomou posebnih matrica i ovakve optike diskove raunari mogu samo itati. Druga vrsta CD optikih diskova koristi tehnologiju koja omoguuje raunarima da upisuju podatke na njih. Meutim, jednom upisani podaci na ovakav optiki disk ne mogu biti kasnije fiziki izbrisani. Prilikom dopisivanja podataka, pravi se novi sadraj optikog diska, u kome mogu biti izostavljene neke prethodno upisane datoteke, to stvara iluziju da se datoteke mogu izbrisati. Trea vrsta CD optikih diskova koristi tehnologiju koja dozvoljava viestruko pisanje i brisanje podataka. Optiki diskovi sa oznakom DVD (digital versatile disk) koriste noviju tehnologiju, pa imaju viestruko vei kapacitet od CD optikih diskova (4.7 gigabajta i vie prema 700 megabajta). Postoje dva standarda za DVD optike diskove na koje se moe upisivati, DVD+R i DVD-R. Veina novijih ureaja podrava oba standarda. Tehnologija poluprovodnikih diskova (SSD, Solid State Disk), zasnovanih na FLASH memorijskim ipovima, nudi znatno manju potronju energije od prethodne dve tehnologije i znatno krae vreme pristupa, ali uz viu cenu.

263

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

UTICAJ RISC PROCESORA NA VIRTUELNU MEMORIJU Adresni prostor od 64 bita, koga uvode pojedini RISC procesori, izaziva pojavu suvie velikih tabela stranica, tako da one prevazilaze ukupnu memoriju raunara. Na primer, za stranice velike 212 (4 kilobajta), tabela stranica ima 252 elemenata, odnosno zauzima 255 bajta, ako njeni elementi zauzimaju po 8 bajta. Zato se, umesto tabele stranica, koristi invertovana tabela stranica (inverted page table). Broj njenih elemenata je jednak broju fizikih stranica radne memorije. Znai, svakoj fizikoj stranici odgovara jedan element ove tabele, tako da indeks elementa adresira odgovarajuu fiziku stranicu. Na invertovanu tabelu stranica se primenjuje princip rada asocijativne memorije sa jednostrukom asocijativnou. Znai, deo bita iz zadane adrese virtuelne stranice slui kao indeks elementa invertovane tabele stranica i, ujedno, kao adresa odgovarajue fizike stranice. Ako indeksirani element sadri, kao referentnu adresu, preostale bite iz zadane adrese virtuelne stranice, tada se njena kopija nalazi u odgovarajuoj fizikoj stranici. Svaki element invertovane tabele stranica sadri i bit popunjenosti dotinog elementa uz bite (referentne) adrese virtuelne stranice, ija kopija se nalazi u odgovarajuoj fizikoj stranici (Slika 12.2.1). 000 001 010 011 100 101 110 111 Slika 12.2.1 Organizacija invertovane tabele stranica Za indeksiranje elemenata invertovane tabele stranica koju sadri Slika 12.2.1 mogu posluiti 3 najmanje znaajna bita adrese virtuelne stranice. Preostali biti predstavljaju referentni deo njene adrese. Ako indeksirani element invertovane tabele stranica ne sadri referentni deo adrese virtuelne stranice, tada njoj ne korespondira fizika stranica. U tom sluaju neophodno je: (1) osloboditi fiziku stranicu koja odgovara indeksiranom elementu, (2) u nju smestiti kopiju dotine virtuelne stranice i (3) referentni deo njene adrese smestiti u indeksirani element. Organizacija invertovane tabele stranica iz prethodnog primera (Slika 12.2.1) podrazumeva da svakoj adresi virtuelne stranice odgovara samo jedan element invertovane tabele stranica, kao i da sve adrese virtuelnih stranica sa ista 3 najmanje znaajna bita koriste isti element invertovane tabele stranica.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

264

SPOJNE MREE Spojne mree omoguuju povezivanje raznih organizacionih komponenti raunara. One omoguuju serijski prenos podataka koji su organizovani u poruke. Spojne mree imaju pravilan oblik i decentralizovano upravljanje. Njihov pravilan oblik omoguuje automatsko odreivanje puta podataka kroz spojnu mreu. Upravljanje spojnim mreama je decentralizovano, jer se odluke o izboru puta donose lokalno u okviru spojne mree, a na osnovu adresnog dela poruke koja se serijski prenosi. Osobine spojnih mrea zavise od komponenti koje one povezuju. Za spojne mree, koje povezuju procesore i module radne memorije, bitno je da ponude to vei broj nezavisnih puteva izmeu procesora i modula radne memorije, da bi to vie procesora moglo istovremeno da pristupa razliitim modulima radne memorije. Pri tome je vano da ovakve spojne mree uzrokuju to manje kanjenje. Ovakve spojne mree se zasnivaju na 22 prekidaima, koji omoguuju paralelnu i unakrsnu vezu izmeu svoja 2 ulaza i svoja 2 izlaza (Slika 12.2.2).

Slika 12.2.2 Stanja prekidaa sa 2 ulaza i 2 izlaza Pomou ovakvih prekidaa, mogue je ostvariti istovremenu vezu izmeu 2 procesora i 2 modula radne memorije (Slika 12.2.3).
MODUL RADNE MEMORIJE MODUL RADNE MEMORIJE

PROCESOR

PROCESOR

Slika 12.2.3 Primer upotrebe prekidaa sa 2 ulaza i 2 izlaza

265

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Za povezivanje vie od 2 procesora sa vie od 2 modula radne memorije, potrebno je vie 22 prekidaa, rasporeenih u vie stepeni. Zato se ovakva spojna mrea naziva viestepena prekidaka mrea (multistage switching network). Pravila rasporeivanja prekidaa u viestepenoj prekidakoj mrei, kao i pravila njihovog meusobnog povezivanja se dobro uoavaju na primeru povezivanja jednog procesora sa 4 modula radne memorije (Slika 12.2.4).
00 00 00 00 MODUL RADNE MEMORIJE MODUL RADNE MEMORIJE MODUL RADNE MEMORIJE MODUL RADNE MEMORIJE

PROCESOR

01

01

01

01

10

10

11

11

Slika 12.2.4 Princip rada dvostepene prekidake mree Da bi se ostvarila ovakva veza, jedini procesor se vee za ulaz jednog prekidaa. Pri tome se izlazi ovog prekidaa vezuju za ulaze druga dva prekidaa, iji izlazi su vezani za po jedan modul radne memorije. Prvi od pomenuta 3 prekidaa pripada prvom stepenu viestepene prekidake mree, a preostala 2 prekidaa pripadaju njenom drugom stepenu. Ulazi i izlazi prekidaa (Slika 12.2.4) su oznaeni binarnim brojevima, da bi se istaklo pravilo povezivanja prekidaa iz raznih stepeni viestepene prekidake mree. Po ovom pravilu, izlaz prekidaa iz jednog stepena se povezuje sa ulazom prekidaa iz sledeeg stepena, tako da binarna oznaka ulaza nastaje krunim pomeranjem za jedno mesto u levo bita iz binarne oznake izlaza. Ovakav nain povezivanja prekidaa iz raznih stepeni se naziva izmeani spoj (shuffle exchange). Podrazumeva se da je binarna oznaka svakog modula radne memorije (Slika 12.2.4) jednaka binarnoj oznaci izlaza prekidaa iz drugog stepena, na koji je dati modul povezan. Ovakva binarna oznaka ulazi u sastav poruke koja odgovara transakciji itanja ili pisanja. Ovu poruku upuuje procesor ka odgovarajuem

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

266

modulu radne memorije. Izmeani spoj omoguuje svakom prekidau da odredi svoje stanje na osnovu bita binarne oznake modula radne memorije, sadrane u poruci koja je stigla do njega. Na taj nain svaki prekida daje svoj doprinos povezivanju procesora i traenog modula radne memorije. Pri tome, prvi bit ovakve binarne oznake odreuje stanje prekidaa iz prvog stepena, a drugi bit odreuje stanje prekidaa iz drugog stepena. Na isti nain se tretiraju i ostali biti, ako ima vie od 2 stepena. Podrazumeva se da svaki od prekidaa usmerava poruku na gornji izlaz, ako njemu namenjeni bit sadri vrednost 0. Inae, poruka odlazi na donji izlaz prekidaa. Stanje prekidaa odreuje poruka koja prva stigne do jednog od njegova 2 ulaza. Znai, poruka koja odgovara transakciji, usmerenoj ka modulu radne memorije sa binarnom oznakom 11, prolazi kroz donji izlaz jedinog prekidaa iz prvog stepena i kroz donji izlaz donjeg prekidaa iz drugog stepena. Na taj nain se uspostavlja veza izmeu procesora i pomenutog modula radne memorije. Ova veza opstaje dok se zahtevana transakcija ne obavi. Opisani nain upravljanja prekidaima omoguuje svakom prekidau da samostalno odreuje svoje stanje, to je primer decentralizovanog upravljanja. Za vezivanje 4 procesora i 4 modula radne memorije dovoljna su 4 prekidaa, rasporeena u 2 stepena (Slika 12.2.5).
00 00 00 00 00 00 MODUL RADNE MEMORIJE MODUL RADNE MEMORIJE MODUL RADNE MEMORIJE MODUL RADNE MEMORIJE

PROCESOR

PROCESOR

01

01

01

01

01

01

PROCESOR

10

10

10

10

10

10

PROCESOR

11

11

11

11

11

11

Slika 12.2.5 Primer upotrebe dvostepene prekidake mree Spojna mrea koju sadri Slika 12.2.5 se naziva omega viestepena prekidaka mrea. Ona omoguuje, na primer, istovremene veze procesora i modula radne memorije sa istim binarnim oznakama. Ove binarne oznake su

267

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

navedene uz procesore i uz module radne memorije. Omega viestepena prekida ka mrea spada u blokirajue viestepene prekidake mree, jer ne omoguuje istovremenu vezu bilo kog procesora i bilo kog modula radne memorije. Na primer, dok je uspostavljena veza izmeu procesora 00 i modula radne memorije 01, dotle je blokirana, odnosno onemoguena veza izmeu procesora 10 i modula radne memorije 00. Postoje i neblokirajue viestepene prekidake mree, poput Bene viestepenih prekidakih mrea. Takoe, postoje i viestepene prekidake mree sa razliitim brojem ulaza i izlaza, poput Banian viestepenih prekidakih mrea. Prednost viestepenih prekidakih mrea u odnosu na unakrsne matrice je da uz znatno manje prekidaa ostvaruju priblino istu funkciju. U prethodnom primeru omega viestepene prekidake mree potrebna su samo 4 prekidaa za povezivanje 4 procesora sa 4 modula radne memorije, za razliku od 16 prekidakih blokova, koje za istu funkciju koristi unakrsna matrica. Ipak, proirljivost multiprocesora, zasnovanih na viestepenim prekidakim mreama, je ograniena brojem prekidaa, jer je kanjenje viestepene prekidake mree proporcionalno broju prekidaa. BBN Butterfly, koga je na trite sredinom osamdesetih godina izbacio BBN LAB., predstavlja primer multiprocesora, zasnovanog na viestepenoj prekidakoj mrei. Njegova posebnost je da posebna sabirnica spaja svaki procesor sa jednim od modula radne memorije, zbog ega BBN Butterfly spada u NUMA multiprocesore. Kod njega je vreme pristupa lokalnom modulu radne memorije, posredstvom posebne sabirnice, 2 mikrosekunde, dok je vreme pristupa preostalim modulima radne memorije, posredstvom viestepene prekidake mree, 6 mikrosekundi. Osnovni gradivni modul BBN Butterfly sadri 16 procesora Motorola 68000 i 16 modula radne memorije, od kojih svaki ima 1 megabajt. BBN Butterfly se moe proirivati do 96 procesora i 96 modula radne memorije (Slika 12.2.6).

PROCESOR

MODUL RADNE MEMORIJE MODUL RADNE MEMORIJE

PROCESOR

VIESTEPENA PREKIDAKA MREA

...
PROCESOR

...
MODUL RADNE MEMORIJE

Slika 12.2.6 Organizacija BBN Butterfly multiprocesora

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

268

Viestepene prekidake mree spadaju u dinamike spojne mree, jer uspostavljaju i raskidaju spojne puteve izmeu procesora i modula radne memorije. Statike spojne mree uspostavljaju trajnu (nepromenljivu) vezu izmeu svojih vorova. One su podesne za povezivanje procesnih elemenata iz vektorske jedinice kod SIMD raunara, prilagoenih reavanju odreene klase problema, kod koje je unapred poznat oblik saradnje procesnih elemenata. To dozvoljava da se direktno poveu procesni elementi ija saradnja je neophodna. Dvodimenzionalna mrea (mesh, grid) predstavlja tipian primer statike spojne mree (Slika 12.2.7).

Slika 12.2.7 Primer dvodimenzionalne mree Zacrnjeni kvadrati iz vorova dvodimenzionalne mree (Slika 12.2.7) predstavljaju komunikacione procesore. Za njih vezani procesni elementi nisu prikazani. Na taj nain svaki procesni element je vezan direktno za svoje horizontalne i vertikalne susede, pa samo njima moe direktno da alje poruke, odnosno samo od njih moe direktno da prima poruke. Rubni procesni elementi mogu biti povezani na razne naine. Kod spiralnog naina povezivanja, procesni element na desnom kraju svake horizontale je vezan za procesni element na levom kraju naredne horizontale, a kod cilindrinog naina povezivanja, meusobno su spojeni rubni procesni elementi sa istih horizontala, odnosno vertikala. Dvodimenzionalne mree su koriene za povezivanje procesnih elemenata iz vektorskih jedinica dva namenska SIMD raunara, oba proizvedena za potrebe NASA (National Aeronautics and Space Administration). Prvi, ILLIAC IV (ILLInois Automatic Computer), je bio namenjen za matrine operacije i za reavanje parcijalnih diferencijalnih jednaina. On je bio proizveden krajem ezdesetih godina, imao je 88 procesnih elemenata, namenjenih za aritmetiku realnih brojeva u 64 bita. U okviru svakog od ovih procesnih elemenata bila je lokalna radna memorija od 16 kilobajta. Drugi, MPP (Massively Parallel Processor), je bio namenjen za analizu satelitskih slika. On je bio proizveden krajem sedamdesetih godina, imao je 128128 procesnih elemenata, namenjenih za jednobitne operacije. U okviru svakog od ovih procesnih elemenata bila je lokalna radna memorija od 1024 bita. Statike spojne mree mogu uspeno da podre i razmenu poruka izmeu bilo koja 2 vora i bez potpunog meusobnog povezivanja svih vorova, pod uslovom da se na jednostavan i uniforman nain pronalaze najkrai putevi izmeu

269

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

bilo kog para vorova. To omoguuju komunikacioni procesori iz vorova statike spojne mree, koji podravaju razmenu poruka. Ako se ovakvi vorovi oznae binarnim brojevima, i ako su direktno povezani samo vorovi ije oznake se razlikuju u samo jednoj binarnoj cifri, tada svaki komunikacioni procesor moe da odredi najkrai put za bilo koju poruku samo na osnovu binarnih oznaka izvorinog i odredinog vora iz poruke koju prenosi. Na najkrai put ukazuju razliiti parovi korespondentnih binarnih cifara u oznakama izvorinog i odredinog vora. Ako ima n>1 ovakvih parova, tada se izmeu izvorinog i odredinog vora nalazi n-1 vorova, ije posredovanje je neophodno za uspenu razmenu poruka. Pri tome, binarna oznaka prvog posrednika se razlikuje u samo jednom bitu od binarne oznake izvorita, i sve tako do poslednjeg posrednika, ija binarna oznaka se razlikuje u jednom bitu od binarne oznake odredita. Prema tome, izmenom jednog i to proizvoljno odabranog bita binarne oznake izvorita, po kome se ona razlikuje od binarne oznake odredita, nastaje ili binarna oznaka posrednika ili binarna oznaka odredita. Ovakve statike spojne mree sa, na primer, 8 vorova obrazuju (trodimenzionalnu) kocku, a sa 16 vorova obrazuju etvorodimenzionalnu hiperkocku (hypercube). Slika 12.2.8 sadri prikaz etvorodimenzionalne hiperkocke.

0011 0001 0010 0000 0100 0101

0111 1001 0110 1000

1011 1101 1010 1100

1111

1110

Slika 12.2.8 Primer etvorodimenzionalne hiperkocke Crni kvadrati u vorovima etvorodimenzionalne hiperkocke (Slika 12.2.8) predstavljaju komunikacione procesore. Dimenzije hiperkocke odreuju najveu moguu od minimalnih udaljenosti bilo koja 2 vora. Ovu udaljenost obrazuju ivice hiperkocke. Za etvorodimenzionalnu hiperkocku ta udaljenost je 4. Tako, na primer, za vorove sa binarnim oznakama 0000 i 1111, rezultat logike operacije iskljuivo ili je 1111. Prema tome, izmena bilo kog bita binarne oznake izvorinog vora daje binarnu oznaku vora posrednika, koji je na putu ka odredinom voru. Ponavljanje ovoga postupka za binarne oznake posrednikih i odredinog vora omoguuje odreivanje binarnih oznaka svih posrednikih vorova koji su na najkraem putu do odredinog vora.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

270

Statika spojna mrea u obliku hiperkocke se koristi i u SIMD i u MIMD raunarima. CM-1 (Connection Machine) predstavlja primer SIMD paralelnog raunara, koga je na trite poetkom osamdesetih godina izbacila Thinking Machines Corporation. On je namenjen za simbolike obrade, karakteristine za probleme vetake inteligencije, kao to su uparivanja (pattern matching), ili pretraivanja (search), a koje se oslanjaju na kompleksne pokazivake strukture i meusobnu komunikaciju sluajno odabranih procesnih elemenata. Za povezivanje procesnih elemenata, osnovni gradivni modul CM-1 sadri dvanaestdimenzionalnu hiperkocku sa 4096 vorova, meusobno povezanih sa 24576 dvosmernih linija, koje obrazuju ivice hiperkocke. U svakom od ovih vorova se nalazi jedan komunikacioni procesor i 16 jednobitnih procesnih elemenata, svaki sa po 4096 bita lokalne radne memorije. Ovi procesni elementi su povezani u dvodimenzionalnu mreu. Komunikacioni procesori posreduju u razmeni poruka izmeu procesnih elemenata iz raznih vorova. Prema tome, osnovni gradivni modul CM-1 sadri 65536 jednobitnih procesnih elemenata i 268 megabita radne memorije. Intel hypercube ili iPSC (Intel Personal SuperComputer), koji se pojavio sredinom osamdesetih godina, predstavlja primer multiraunara, zasnovanog na hiperkocki. Osnovni gradivni modul iPSC sadri petodimenzionalnu hiperkocku od 32 vora, a mogue je kombinovanje do 4 ovakva gradivna modula. U svakom voru se nalazi Intel 80286 procesor sa koprocesorom za aritmetiku realnih brojeva i sa 512 kilobajta lokalne radne memorije. Debelo drvo (fat-tree) predstavlja drugi primer statike spojne mree koja podrava razmenu poruka izmeu bilo koja 2 vora (Slika 12.2.9).
00 01 02 03

00

01

10

11

20

21

30

31

10 11

12 13 14 15

Slika 12.2.9 Primer debelog drveta za 16 vorova Crni kvadrati (Slika 12.2.9) predstavljaju prekidae (switch), a crni krugovi predstavljaju procesore koji su na njih povezani. Podrazumeva se da je propusnost linija iznad prekidaa dvostruko vea od propusnosti linija ispod prekidaa. Debelo drvo je korieno u CM-5 (Connection Machine) multiprocesoru koga je na trite sredinom devedesetih godina izbacila Thinking Machines

271

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Corporation. I ovaj multiprocesor je bio napravljen od trino raspoloivih mikroprocesora. BARIJERNA SINHRONIZACIJA Primena multiprocesora u sloenim iteracionim numerikim proraunima je dovela do potrebe za posebnom vrstom usklaivanja aktivnosti vie procesa koji su pridrueni razliitim procesorima. U ovakvim iteracionim proraunima svaki proces moe da pree na narednu iteraciju, tek kada svi procesi zavre tekuu iteraciju. Ovakvo usklaivanje aktivnosti se naziva barijerna sinhronizacija (barrier synchronization) i zahteva brojanje procesa koji su zavrili tekuu iteraciju, odnosno, koji su stigli do sinhronizacione barijere. Radi toga je potrebno odabrati posebnu lokaciju zajednike radne memorije, nazvanu broja i nameniti je za brojanje procesa, pristiglih do sinhronizacione barijere. Kada proces stigne do sinhronizacione barijere, on preuzima i uvea sadraj brojaa za vrednost 1. Pri tome se ne sme dozvoliti da vie procesa, jedan za drugim, proitaju isti sadraj brojaa i da zatim, nakon uveanja proitanog sadraja za vredost 1, opet, jedan za drugim, upiu uveani sadraj natrag, jer tada broja nee sadrati ispravan broj procesa, pristiglih do sinhronizacione barijere. Znai, potrebna je nedeljivost itanja, uveanja i pisanja vrednosti brojaa. Sinhronizaciona barijera se moe ostvariti pomou procesorske naredbe itaj-uveaj-pii (fetch-and-add). Uslov je da izvravanje te naredbe zauzme broja, koji je naveden kao operand naredbe, tako da izmeu itanja i pisanja ove lokacije nisu dozvoljeni drugi pristupi brojau. Ovakvo zauzimanje brojaa moe da obezbedi spojna mrea, ali i poseban kontroler memorijskog modula. Za ispravno brojanje procesa, pristiglih do sinhronizacione barijere, je vano da broja u poetku sadri vrednost 0. Pri tome, svaki od procesa, pristiglih do sinhronizacione barijere, ostaje uz barijeru u radnom ekanju dok god je sadraj brojaa manji od ukupnog broja procesa. Kada i poslednji proces pristigne do sinhronizacione barijere, sadraj brojaa vie nije manji od ukupnog broja procesa, pa svi procesi mogu prei na narednu iteraciju. Pri tome, sadraj brojaa ne sme biti anuliran, da bi svaki od procesa, koji se nalaze u radnom ekanju, ustanovio da su svi procesi stigli do sinhronizacione barijere. U meuvremenu, procesi koji su preli u narednu iteraciju mogu da uveaju broja. Zato, da bi se isti broja koristio za sinhronizacionu barijeru i u narednoj iteraciji, neophodno je da, prilikom narednog dolaska do sinhronizacione barijere, procesi ostanu u radnom ekanju dok je sadraj brojaa vei od ukupnog broja procesa. Pri tome se podrazumeva da poslednji proces, koji na kraju naredne iteracije stigne do sinhronizacione barijere, anulira broja. Precizan opis protokola, koga mora da potuje svaki od procesa, da bi se ostvarila sinhronizaciona barijera, opisuje funkcija barrier, napisana programskim jezikom C:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)


void barrier(int *counter) { char state; state = (*counter < NUMBER); if(fetch_and_add(counter) == (2*NUMBER-1)) *counter = 0; while(state == (*counter < NUMBER)); };

272

Za izvravanje funkcije fetch_and_add se podrazumeva da odgovara izvravanju procesorske naredbe za itanje i uveavanje. Poziv ove funkcije vraa zateenu vrednost brojaa i, uz to, uveava broja za 1. Konstanta NUMBER odgovara ukupnom broju procesa (procesora), parametar counter predstavlja broja, a lokalna promenljiva state odreuje za svaki proces posebno da li on eka dok je sadraj brojaa manji ili dok nije manji od ukupnog broja procesa. U toku izvravanja funkcije barrier procesi se nalaze u radnom ekanju.

12.3. PITANJA
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ta je uzrokovalo pojavu RISC arhitekture? ta je omoguila RISC arhitektura? Koja su fizika ogranienja skraenja procesorskog ciklusa kod poluprovodnike tehnologije? Od ega zavisi prenik raunara? Da li skrivena memorija utie na prenik raunara? Od ega zavisi veliina ubrzanja obrade podataka, nastala primenom paralelizma? Koji modeli raunanja postoje? Koji oblici paralelizma su nevidljivi za programere? Kako se na osnovu broja tokova naredbi i broja tokova podataka dele paralelni raunari? U koju klasu raunara spadaju sistoliki raunari? Od ega se sastoje SIMD raunari? ta je slaba taka SIMD raunara? U emu se razlikuju multiprocesori i multiraunari? ta karakterie NUMA multiprocesore? Na emu se zasniva otpornost na kvarove? ta karakterie RISC procesore? ta su super-skalari? Kakvi prekidi mogu biti kod super-skalara? Kakvi su formati mainskih naredbi kod RISC procesora? Za ta su zadueni kompajleri kod RISC procesora? Za ta su zadueni RISC procesori? ta podrava IEEE 754 standard za aritmetiku realnih brojeva? ta je karakteristino za INTEL PENTIUM Pro procesor? ta omoguuje RAID? Koje tehnologije masovnih memorija postoje?

273

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

26. 27. 28. 29. 30. 31. 32. 33. 34.

ta je karakteristino za invertovanu tabelu stranica? ta je karakteristino za spojne mree? Kako se dele spojne mree? Kako se dele viestepene prekidake mree? ta je karakteristino za viestepene prekidake mree? Koje vrste statikih spojnih mrea postoje? ta karakterie hiperkocku? ta omoguuje barijerna sinhronizacija? Na emu se zasniva barijerna sinhronizacija?

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

274

13. EVOLUCIONI PERIOD ARHITEKTURE RAUNARA OKO 2000. GODINE


13.1. SVOJSTVA ARHITEKTURE RAUNARA U PERIODU OKO 2000. GODINE
Nastavak usavravanja tehnologije veoma visoke integracije je omoguio smetanje na desetine miliona tranzistora na jedan ip. To je omoguilo da se u mikro-procesorskoj tehnoligiji realizuju ideje koje su nekada bile iskljuivo vezane za velike i super-raunare. Tako je izbrisana granica izmeu mikro, mini, velikih, a delom i super-raunara, pa se kao prirodnija nametnula podela na ugraene (embedded) raunare, radne stanice (desktop computer, workstation) i servere. Ugraeni raunari predstavljaju upravljaki deo raznih ureaja. Radne stanice opsluuju pojedinane korisnike i omoguuju ne samo njihov lokalni rad, nego i pristup Internetu. Serveri posredstvom Interneta pruaju razne usluge korisnicima radnih stanica. UGRAENI RAUNARI Ugraeni raunari su vezani za primene sa vie ili manje strogim ogranienjima na vreme koje je raspoloivo za obradu podataka (real-time systems). Ovakve primene esto podrazumevaju obradu govornih, video i drugih signala. Specifini zahtevi ovakvih obrada, kao to su precizni numeriki prorauni za vrlo dugake nizove podataka, su doveli do pojave posebne vrste procesora, koji se oznaavaju skraenicom DSP (digital signal processor). Za ugraene raunare je vana mala potronja energije i mogunost rada u nepovoljnim uslovima visoke ili niske temperature, visoke vlanosti, vibracija, prisustva praine i agresivnih materija, jer ureaji, u koje su oni ugraeni, obino imaju baterijsko napajanje i predvieni su za rad na otvorenom prostoru ili u industrijskim pogonima. Posebnu podvrstu ugraenih raunara predstavljaju raunari za jednokratnu upotrebu (disposable computer). Primer njihove upotrebe pruaju RFID (Radio Frequency IDentification) ipovi koji se ugrauju u proizvode radi njihove identifikacije. Kada se nau u zoni dovoljno jakih radio signala, ovi ipovi indukuju dovoljno energije da emituju identifikacioni broj sadran u sebi ili obave neku drugu kratkotrajnu operaciju. RADNE STANICE Radne stanice imaju bitne karakteristike nekadanjih velikih raunara, kao to su veliki adresni prostor, virtuelna memorija, vie sabirnica ili velika masovna memorija. Slika 13.1.1 sadri prikaz organizacije radne stanice, zasnovane na PENTIUM 4 procesoru.

275

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

EKRAN

GRAFIKI ADAPTER

PENTIUM 4 PROCESOR (sa dva nivoa skrivene memorije) lokalna sabirnica

SEVERNI VEZNI PCI (Peripheral IP Component Interconnect) (NORTHBRIDGE) Express x16 sabirnica PCI (Peripheral Component Interconnect) sabirnica ZVUNA KARTICA JUNI VEZNI IP (SOUTHBRIDGE)

memorijska sabirnica

RADNA MEMORIJA

PCI (Peripheral Component Interconnect) Express x1 sabirnica MRENI (Ethernet) IP SATA/SATA 2 (Serial ATA Advanced Technology Attachment) sabirnica DVD DISK

MODEM

PATA (Parallel ATA - Advanced Technology Attachment) sabirnica DVD DISK

USB (Universal Serial Bus) 2.0 sabirnica MI TASTATURA USB (poluprovodniki) DISK TAMPA SKENER

Slika 13.1.1 Organizacija radne stanice koja je zasnovana na PENTIUM 4 procesoru SERVERI Serveri se dele na multiprocesore i multiraunare. Multiprocesore karakterie deljena radna memorija (shared-memory systems). Ona je sastavljena od vie modula. Njoj, posredstvom spojne mree, mogu pristupati svi procesori. Njihova saradnja se ostvaruje razmenom podataka posredstvom istih memorijskih lokacija. To stvara probleme, jer razni procesori pristupaju istim memorijskim lokacijama u nepredvidivom redosledu, koga jo komplikuje injenica da sadraj iste memorijske

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

276

lokacije moe biti repliciran u vie skrivenih memorija. Zato je potrebno definisati pravila ponaanja memorije (memory semantycs) koja ograniavaju mogui redosled pristupanja istim memorijskim lokacijama. Ovakva pravila oblikuju modele konzistentnosti (consistency models). Tako, stroga konzistentnost (strict consistency) podrazumeva potpunu serijalizaciju pristupa, jer garantuje da svako itanje iste memorijske lokacije preuzima poslednju vrednost, koja je upisana u tu lokaciju. Stroga konzistentnost je suvie kruta, jer smanjuje stepen paralelizma u multiprocesoru. Sekvencijalna konzistetnost (sequential consistency) dozvoljava da svako itanje iste memorijske lokacije ne preuzima poslednju vrednost, koja je upisana u nju, nego moe da preuzme i neku stariju vrednost, uz garanciju da svaki procesor vidi isti redosled upisivanja vrednosti za svaku memorijsku lokaciju. Postoje i drugi, jo labaviji modeli konzistentnosti, koji su laki za izvedbu, a daju dovoljno pravilnosti za pisanje programa sa predvidivim ponaanjem. Posebnu podvrstu multiprocesora predstavljaju COMA (cache only memory access) multiprocesori. Njihova celokupna deljena radna memorija se ponaa kao skrivena memorija. Znai svaki procesor ima njenu kopiju. O konzistentnosti ovih kopija se brinu posebni protokoli (cache coherence protocols). Primer multiprocesora je SEQUENT NUMA-Q 2000. Njegov osnovni gradivni modul sadri 4 INTEL PENTIUM Pro procesora i 4 giga bajta radne memorije. Ove gradivne module objedinjuju u multiprocesor posebni kontroleri koji su meusobno povezani. Svaki od ovih kontrolera poseduje skrivenu memoriju od 32 megabajta, a svi zajedno su odgovorni za usaglaenost sadraja svih skrivenih memorija. Multiraunare karakterie distribuirana radna memorija (distributedmemory system). Poto svaki raunar ima sopstvenu lokalnu radnu memoriju, koja je nepristupana za druge raunare, razmena poruka je jedini nain njihove saradnje. Razmena poruka se oslanja na posebne biblioteke, kao to je MPI (Message Passing Interface) biblioteka. One realizuju odgovarajue komunikacione protokole i olakavaju komunikaciju procesa, aktivnih na raznim raunarima, omoguujui njihovu sinhronizaiciju. Uslovna podela multiraunara se zasniva na karakteristikama raunara od kojih su multiraunari sastavljeni. U klasi super-raunara se nalaze multiraunari, sastavljeni od procesora sa sopstvenom lokalnom radnom memorijom, koji su povezani brzim, namenski razvijenim spojnim mreama. Ovakvi multiraunari se oznaavaju skraenicom MPP (massively parallel processors). U klasi klastera (cluster, cluster of workstations) se nalaze multiraunari koji su sastavljeni od radnih stanica, povezanih komercijalnim spojnim mreama. Kao komercijalne spojne mree koriste se eternet mree, prekidai (switch) i sistemske mree (SAN, storage or system area network). Prekidai omoguuju prenos poruka izmeu linija koje su za njih spojene. Njihova komercijalna primena je vezana za pojavu prekidaa na ipu. Sistemske mree istiskuju ulazno-izlazne sabirnice. One su

277

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

izvorno namenjene za povezivanje jedinica masovne memorije sa raunarom na udaljenostima do 100 metara. Primer MPP multiraunara je CRAY T3E. On sadri do 2048 procesora DEC ALPHA 21164, svaki sa do 2 gigabajta radne memorije. Ovi procesori su povezani dvosmernom trodimenzionalnom mreom (full-duplex 3D torus) u kojoj je svaki vor povezan sa 4 suseda iz svoje ravni i sa po jednim susedom iz gornje i donje ravni. Za vezu 512 vorova ovakva trodimenzionalna mrea ima 888 vorova. Pored toga, procesori su povezani i posebnom mreom za razmenu poruka, na koju su zakaeni i razni ulazno-izlazni ureaji i ureaji masovne memorije. Primer klaster multiraunara je GOOGLE. On je namenjen za pretraivanje Interneta (search engine). Jedan njegov klaster se sastoji se od 5120 radnih stanica. U sastav jedne radne stanice ulazi PENTIUM 4 procesor, 512 megabajta radne memorije, 80 gigabajtni disk i napajanje sa hlaenjem. Radne stanice su rasporeene u 64 ormara. Svaki ormar sadri 80 radnih stanica i prekida koji ih povezuje meusobno. Prekidai iz ormara su povezani sa dva prekidaa koji GOOGLE klaster povezuju na Internet. PARALELIZAM UNUTAR PROCESORA Razvoj tehnologije visokog stepena integracije je prvo omoguio uvoenje protone strukture u procesor, radi izvravanja jedne procesorske naredbe u priblino jednom procesorskom ciklusu, a zatim je omoguio uvoenje vie protonih struktura u procesor (super-skalari) i izvravanje vie procesorskih naredbi u jednom procesorskom ciklusu (multiple-issue processors). Takva vrsta paralelizma unutar procesora ne zahteva programersku asistenciju, jer je na nivou procesorskih naredbi (instruction level parallelism) i mogua je izmeu nezavisnih naredbi. Broj istovremeno izvrenih naredbi u jednom procesorskom ciklusu zavisi od broja protonih struktura procesora, ali i od broja raspoloivih nezavisnih naredbi. Jedan nain da se povea broj raspoloivih nezavisnih naredbi je da izvravanje pojedinih naredbi zapone pre nego to je poznato da li e one uopte biti izvravane (speculative execution). Na primer, ako u programu postoji grananje sa izraunavanjem vrednosti razliitog aritmetikog izraza u svakoj grani, tada se mogu izvriti naredbe radi raunanja vrednosti oba aritmetika izraza pre nego je poznato koja od grana e biti odabrana u izvravanju programa. To znai da bi za iskaz:
if (a>b) a = a - b; else b = b - a;

(iz primera raunanja najveeg zajednikog delioca) bile izvrene naredbe koje raunaju vrednost oba aritmetika izraza pre nego je poznato koji od njih e biti

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

278

potreban. Efekti izvravanja pomenutih naredbi se prihvataju tek kada se ispostavi da je njihovo izvravanje bilo potrebno. U suprotnom se javlja problem ako je njihovo izvravanje izazvalo izuzetak. Zato se obrada ovakvog izuzetka mora odloiti do trenutka kada je sigurno da je izvravanje naredbe bilo potrebno. Drugi nain da se povea broj raspoloivih nezavisnih naredbi je da programer oznai nezavisne delove svog programa, koji se nazivaju niti (thread). Tada je redosled izvravanja naredbi precizno odreen samo unutar svake niti, ali ne i izmeu njih. Poto su naredbe iz raznih niti istog programa meusobno nezavisne, one se mogu izvravati u proizvoljnom redosledu (thread level parallelism). Prema tome, izvravanja naredbi iz raznih niti istog programa mogu istovremeno poinjati (simultaneous multithreading), kad god za to postoje raspoloivi resursi u procesoru. Nezavisne naredbe moe pronalaziti ili procesor ili kompajler. Praksa je pokazala da prvi pristup komplikuje i usporava procesor. Zato je prirodno takav posao prepustiti kompajleru. Njegov zadatak je (1) da generie naredbe koje e na najbolji nain uposliti procesor i iskoristiti njegov paralelizam i (2) da meu njima pronae nezavisne naredbe ije izvravanje moe istovremeno zapoeti i odvijati se paralelno. Kada pronae takve naredbe, kompajler ih moe spakovati kao jednu veliku naredbu. Za procesore koji mogu da prihvate ovakvu veliku naredbu se kae da imaju dugaak mainski format naredbe. Engleska skraenica ovog naziva je VLIW (very long instruction word). Poto je paralelizam izmeu ovakvih naredbi eksplicitno oznaen, raunari sa ovakvim procesorima se nazivaju raunari sa eksplicitnim paralelnim naredbama. Engleska skraenica ovog naziva je EPIC (explicitly parallel instruction computers). Da bi preklapanje izvravanja ovakvih naredbi bilo jednostavnije i bez zadrki, potrebno je izbei uslovne izmene u redosledu izvravanja naredbi. Izbegavanje grananja u programu se zasniva na konceptu predikatskih naredbi (predicated instruction). Njihovo izvravanje zapoinje proverom vaenja zadanog predikata (uslova) koga sadri poseban jednobitni predikatski registar (predicate register). Ako predikat vai, izvravanje predikatske naredbe se nastavlja, inae se obustavlja. Predikatski registar postavljaju posebne naredbe, uvedene umesto uslovnih upravljakih naredbi. U ovakvoj situaciji, uslovnu upravljaku naredbu zamenjuje posebna naredba koja postavi zadani predikatski registar u skladu sa vaenjem datog uslova. Naredbe iz jedne grane programa zamenjuju ekvivalentne predikatske naredbe za ije izvravanje je neophodno da zadani predikatski registar sadri vrednost 1, dok naredbe iz druge grane programa zamenjuju ekvivalentne predikatske naredbe za ije izvravanje je neophodno da zadani predikatski registar sadri vrednost 0. Tako, u sluaju iskaza:
if (a>b) a = a - b; else b = b - a;

279

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

predikatski registar bi postavile naredbe koje odreuju vaenje uslova, ako je uslov taan. Prvom iskazu dodele bi odgovarale predikatske naredbe za ije izvravanje je potrebno da predikatski registar bude postavljen, a drugom iskazu dodele bi odgovarale predikatske naredbe za ije izvravanje je potrebno da predikatski registar ne bude postavljen. EVOLUCIJA OPTIKIH DISKOVA Poveanje kapaciteta optikih diskova je vezano za pojavu optikih diskova sa oznakama Blue-ray (9 i vie gigabajta) i HD DVD (15 i vie gigabajta). Noviji standardi sistema datoteka, UDF (Universal Disk Format, ISO/IEC 13346) i ISO/IEC 13490, donose unapreenja vezana za nazive datoteka, njihovu maksimalnu veliinu, kao i za dopisivanje podataka.

13.2. ISHODI EVOLUCIJE ARHITEKTURE RAUNARA U PERIODU OKO 2000. GODINE


ARHITEKTURA NAREDBI ZA INTEL ITANIUM INTEL ITANIUM spada u RISC EPIC procesore. Arhitektura naredbi ovog procesora podrava 64-bitni adresni prostor. U ovoj arhitekturi na raspolaganju su 128 registara opte namene od 64 bita, 128 registra za realne brojeve od 82 bita, 64 jednobitna predikatska registra (predicate registers), 8 registara za indirektne skokove (branch registers) od 64 bita i razni drugi namenski registri. Ukupno ima 111 tipova naredbi. Sve naredbe su predikatske i dobavljaju se u grupama koje se nazivaju svenjevi. Mainski format svenja (bundle) naredbi ove arhitekture izgleda:
41 41 41 5

Njegova prva 3 polja su namenjena za 3 mainske naredbe. Svaka od ovih mainskih naredbi u 4 najznaajnija bita sadri kod tipa naredbe, a u 6 najmanje znaajnih bita sadri kod predikatskog registra. Namena ostalih bita zavisi od tipa naredbe. Tako, na primer, ostali biti mogu sadrati relativni kod naredbe i kodove registara sa operandima. U poslednjem polju svenja se nalazi 5 bitni kod svenja. On olakava dekodiranje naredbi iz svenja. Poto se podrazumeva eksplicitno oznaavanje paralelnih naredbi, koje mogu obuhvatati naredbe iz jednog ili vie svenjeva, kod svenja ujedno oznaava kraj grupe paralelnih naredbi u svenju. Na taj nain grupu paralelnih naredbi ine sve naredbe koje se nalaze izmeu dve uzastopne oznake kraja u istom ili raznim svenjevima, zavisno od sluaja. Implementacija ove arhitekture se oslanja na 3 nivoa skrivene memorije.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

280

13.3. PITANJA
1. Kakva podela raunara se nametnula u evolucionom periodu oko 2000. godine? 2. Koji pojmovi su vezani za ugraene ranare? 3. ta karakterie radne stanice? 4. Kako se dele serveri? 5. Koji modeli konzistentnosti deljene radne memorije postoje? 6. Kako se dele multiraunari? 7. Koje spojne mree koriste klasteri? 8. Kako se poveava broj raspoloivih nezavisnih naredbi, koje se mogu istovremeno izvravati?

281

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

14.

PROCENA OSOBINA RAUNARA

14.1. NAIN PROCENE OSOBINA RAUNARA


Za uspean rad raunara, neophodno je usaglasiti raznorodne komponente koje ulaze u njegov sastav. Raznorodnost ovih komponenti oteava njihovo usaglaavanje, ali i procenu ukupnih osobina raunara. Sa stanovita procene osobina raunara, procesor karakteriu veliina procesorskih naredbi i vreme njihovog izvravanja. Vreme izvravanja procesorske naredbe je odreeno trajanjem procesorskog ciklusa i njihovim brojem u procesorskoj naredbi. Poto razliite procesorske naredbe sadre razliit broj procesorskih ciklusa, procesor karakterie proseno vreme izvravanja procesorskih naredbi. Ono se obino ne odreuje kao aritmetika sredina, nego kao suma proizvoda verovatnoa izvravanja pojedinih tipova procesorskih naredbi i vremena potrebnih za njihovo izvravanje. Ovakve verovatnoe se odreuju empirijski. Primer tako odreenih verovatnoa izvravanja pojedinih tipova procesorskih naredbi, poznat pod nazivom Gibson mix, dodeljuje naredbama prenosa izmeu registara procesora i lokacija radne memorije verovatnou 0.31, uslovnim naredbama verovatnou 0.17, naredbama celobrojne aritmetike verovatnou 0.07, naredbama aritmetike realnih brojeva verovatnou 0.12, a ostalim naredbama verovatnou 0.33. Ako se zna srednji broj ciklusa po procesorskoj naredbi, tada se procesor karakterie vremenom njegovog ciklusa, ili, jo ee, taktom, odnosno frekvencijom (brojem procesorskih ciklusa u jedinici vremena). Kolinik frekvencije procesora i srednjeg broja procesorskih ciklusa po procesorskoj naredbi predstavlja srednji broj (frekvenciju) naredbi koje procesor moe da izvri u jedinici vremena. Ovakav srednji broj naredbi se obino izraava u milionima naredbi u sekundi. Engleska skraenica naziva ovakve jedinice je MIPS (million instructions per second). Na primer, RISC procesor sa procesorskim ciklusom od 10-8 sekundi ima frekvenciju 100 megaherca. Ako prosena naredba ovoga procesora traje 2 procesorska ciklusa, tada ovaj procesor moe u proseku da izvri 50 miliona procesorskih naredbi u sekundi (50 MIPS). Vano je naglasiti da MIPS nije podesna mera za meusobno poreenje procesora, zbog velikih razlika izmeu skupova naredbi razliitih vrsta procesora. Na primer, CISC procesori, kao to su procesori iz DEC VAX serije, omoguuju da se, u okviru izvravanja jedne procesorske naredbe, preuzmu dva operanda iz radne memorije, obavi njihovo sabiranje, i zbir smesti u radnu memoriju. Za isti posao su, kod tipinih RISC procesora, potrebne 4 procesorske naredbe. Iz istih razloga nije uputno porediti procesore ni na osnovu broja operacija aritmetike realnih brojeva koje oni mogu da obave u jedinici vremena. Engleska skraenica naziva ovakve jedinice je megaFLOPS ili MFLOPS (million floating-point operations per second).

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

282

Sa stanovita procene osobina raunara, radnu memoriju karakteriu veliina njene rei, ukupan broj rei i vreme ciklusa. Reciprona vrednost vremena memorijskog ciklusa odreuje propusnost radne memorije, odnosno broj itanja/pisanja lokacija radne memorije u jedinici vremena. Sa stanovita procene osobina raunara, sabirnicu karakterie propusnost (bandwidth), koja se izraava brojem bajta u sekundi. Sa stanovita procene osobina raunara, disk, kao sinonim za masovnu memoriju, karakteriu veliina bloka, ukupan broj blokova i srednje vreme pristupa (bloku diska). Ovo vreme je jednako sumi srednjeg vremena pomeranja, srednjeg vremena rotacije, vremena prenosa i vremena kontrolera. Srednje vreme pomeranja obino daje proizvoa, podrazumevajui ravnomerno pristupanje svim blokovima diska. Reciprona vrednost srednjeg vremena pristupa odreuje propusnost diska, odnosno broj itanja/pisanja blokova diska u jedinici vremena. Na primeru prethodne etiri organizacione komponente raunara se moe pokazati problematinost njihovog usaglaavanja. Da bi procesor mogao da radi punom brzinom, do njega mora da stigne odgovarajui broj mainskih naredbi i podataka. To nije mogue bez odgovarajue propusnosti sabirnice i radne memorije. Skrivena memorija moe da dovede u sklad pomenute komponente, ali za dovoljno visoku verovatnou pogodaka. Vano je uoiti da ta verovatnoa zavisi od izvravanog programa. Poseban problem predstavlja propusnost diska, jer ona zavisi i od osobina operativnog sistema i od karakteristka izvravanog programa. Prethodno ukazuje da uspenost raunara podjednako zavisi od: 1. osobina i usaglaenosti njegovih organizacionih komponenti, 2. od osobina izvravanog programa, odnosno od toga da li u njemu preovlauju prorauni, interaktivni rad ili ulaz i izlaz podataka, 3. od operativnog sistema, ali i 4. od kompajlera. Zbog uticaja vie raznorodnih uzroka, teko je predvideti (proceniti) ponaanje raunara u raznim situacijama. Iz istih razloga je problematino i poreenje raunara na osnovu osobina njihovih pojedinih organizacionih komponenti. Zato se provera uspenosti arhitekture raunara, kao i poreenje raznih raunara, zasnivaju na posmatranju raunara kao celine, odnosno na posmatranju vremena potrebnog za izvavanje reprezentativnih programa (benchmark). Za ovakva poreenja je vano da na raznim raunarima budu obezbeeni isti uslovi, znai isti operativni sistem i isti kompajler. Nekada se, kao reprezentativni programi, koriste delovi odabranih programa (kernel, livermore loop, linpack), za koje se pretpostavlja da mogu da pokau osobine raunara kao celine. S istom namerom se prave i posebni programi (sintetic benchmark, whetstone, dhrystone), u kojima se nastoji obezbediti da izvravanja pojedinih tipova naredbi budu u odnosu zapaenom kod odreene klase korisnikih programa. Meutim, najbolji reprezentativni programi su programi koje korisnik upotrebljava, jer jedino oni mogu ukazati na raunar koji najbolje odgovara korisnikovim potrebama.

283

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

14.2. PITANJA
1. Od ega zavisi vreme izvravanja procesorske naredbe? 2. ta odreuje kolinik frekvencije procesora i srednjeg broja procesorskih ciklusa po procesorskoj naredbi? 3. ta odreuje reciprona vrednost vremena memorijskog ciklusa? 4. ta odreuje reciprona vrednost srednjeg vremena pristupa diska? 5. Od ega zavisi uspenost raunara?

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

284

15. SAVREMENI PERSONALNI RAUNAR


Fiziki delovi savremenog personalnog raunara su: matina ploa sa kontrolerima, procesor, radna memorija, ureaji masovne memorije, grafiki, zvuni i mreni adapter, tastatura, mi, monitor, napajanje i kuite sa rashladnim sistemom. Najee korieni operativni sistemi na personalnim raunarima su razne verzije operativnih sistema Microsoft Windows, UNIX, GNU/Linux i Apple Mac OS X.

15.1. PROCESOR
Dva najznaajnija proizvoaa procesora za personalne raunare (x86 kompatibilni procesori) su Intel i AMD. Ostali proizvoai, kao to su VIA, SiS i Transmeta, pokrivaju veoma mali deo trita, i to uglavnom vezan za usko specijalizovane primene. Poslednje dve godine u svet personalnih raunara je ula jo jedna procesorska arhitektura koja nije kompatibilna sa x86. U pitanju su procesori zasnovani na ARM arhitekturi, koji su se prvobitno koristili u mobilnim ureajima, ali se sve vie pojavljuju kao osnova tablet i netbook raunara. Bitna karakteristika svih procesora za personalne raunare je da nominalno imaju istu arhitekturu naredbi (osnovne naredbe, SSE - Streaming SIMD Extensions, odnosno 3DNow!). Praksa pokazuje da arhitekture naredbi procesora raznih proizvoaa nisu identine, jer postoje programi koji se izvravaju korektno na procesorima jednog poizvoaa, a ne izvravaju se korektno na procesorima drugog, i obratno. Svaki procesor karakterie njegov tip podnoija (socket). I Intel i AMD u svojoj ponudi imaju vie familija procesora koji koriste razliita podnoja. Tako, Intel u svojoj ponudi ima (izmeu ostalih) familije procesora Pentium, Celeron, Xeon, Core, Core 2 i Core i7 (i derivati Core i3 i Core i5), dok AMD ima (izmeu ostalih) familije procesora Athlon, Opetron, Turion, Sempron, Phenom i Phenom II. Jo jedna bitna karakteristika procesora je njegova frekvencija. Frekvencije savremenih procesora dostiu do 3,8 GHz, iako su uz pomo specijalnih rashladnih sistema mogue i vie frekvencije (pri tome, treba imati u vidu da novije arhitekture procesora postiu bolje rezultate od starijih, iako rade na niim frekvencijama). Poto danas rairene tehnologije polako dostiu maksimum u pogledu frekvencije procesora, trae se drugi naini poveanja brzine izvravanja programa. Tako se uvode 64-bitne arhitekture (Athlon64, krajem 2003. godine) i u jedan ip se smeta vie procesora (dual-core procesori, sredina 2005. godine i quad-core procesori, sredina 2006. godine). Trenutno se radi na razvoju osmo i dvanaesto-jezgarnih x86 procesora. Treba napomenuti i da se u oblasti numerikih prorauna, umesto centralnog procesora, sve vie koriste procesori sa grafikih kartica koji ve sada poseduju vie desetina/stotina jezgara.

285

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

15.2. MATINA PLOA


Matina ploa povezuje ostale delove raunara. Na njoj se nalaze: podnoije za procesor iz odreene familije, konektori za memorijske module, konektori za ulazno-izlazne ureaje, konektori za ureaje masovne memorije, vezni (bridge) ip(ovi), BIOS ip, konektori za napajanje, itd. Njih povezuju fizike linije izvedene u vieslojnoj tampi na matinoj ploi. Pored nabrojanih osnovnih delova, matina ploa moe sadrati i razne dodatne delove, kao na primer, ugraeni RAID kontroler, ureaje za podeavanje pojedinih parametara matine ploe u toku rada raunara, konektor za dodatni grafiki adapter, itd. Postoji vie standarda matinih ploa koje propisuju njihovi proizvoai. Ovi standardi odreuju vrstu napajanja i dimenzije ploa. Danas su najvie u upotrebi standardi ATX (Advanced Technology Extended) i microATX. 2003. godine je predloen BTX (Balanced Technology Extended) standard, ali je naputen krajem 2006. godine. Prenosivi personalni raunari obino koriste specijalizovane matine ploe, prilagoene potrebama takvih raunara. Slika 15.2.1 prikazuje pojednostavljeni izgled matine ploe za Core 2 Duo procesor sa LGA775 podnojem. Ova matina ploa sadri: 1. konektore za USB, Ethernet, FireWire, eSATA, audio ulaz i izlaz, tastaturu i mia (A), 2. podnoje za procesor (B), 3. konektore za memoriju (C), 4. konektor za floppy disk (D), 5. gigabitni LAN PCIe kontroler (E), 6. severni vezni ip (F), 7. konektor za napajanje (G), 8. SATA II RAID i PATA kontroler (H), 9. PCIe x16 konektore (I), 10. HD audio kontroler (J), 11. PCI konektore (K), 12. litijumska baterija za RAM memoriju BIOS-a i kratkospojnik za njeno brisanje(L), 13. PATA konektor (M), 14. gigabitni LAN PCI kontroler (N), 15. PCIe x1 konektor (O), 16. FireWire kontroler (P), 17. BIOS ip (Q), 18. SATA konektore (R) 19. juni vezni ip (S) i 20. vie konektora za prikljuenje dodatnih ventilatora, napajanja i ureaja.

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

286

Slika 15.2.1 Pojednostavljeni izgled matine ploe

287

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

VEZNI (BRIDGE) IP Vezni (Bridge) ip slui da povee sve hardverske delove matine ploe u jednu celinu. Zbog svoje kompleksnosti, ovaj ip se obino sastoji iz dva dela, nazvana severni (northbridge) i juni (southbridge). Ova dva dela veznog ipa meusobno povezuje specijalizova brza sabirnica. Generalno, za severni vezni ip su povezani procesor, radna memorija i grafiki adapter. Za juni vezni ip su povezani ostali ureaji. Postoje vezni ipovi koji nemaju prethodno navedenu organizaciju. Severni vezni ip u sebi sadri memorijski kontroler, kontroler brze sabirnice za procesor i kontroler sabirnice za grafiki adapter (AGP ili PCIe). Juni vezni ip u sebi obino sadri kontroler ulazno-izlazne sabirnice (PCI i/ili PCIe), USB kontroler, kontroler sabirnice masovne memorije (PATA i/ili SATA), kontroler floppy diska, a ostvaruje vezu sa BIOS ipom, kao i sa tastaturom i miem. Pored prethodnog, vezni ipovi mogu u sebi imati i neke ureaje. Tako, severni vezni ip u sebi moe sadrati integrisani grafiki adapter koji nema sopstvenu memoriju, nego koristi deo radne memorije. Juni vezni ip u sebi moe sadrati, na primer, integrisani zvuni adapter, integrisani mreni adapter i/ili integrisani modem. Svi ovi ureaji su interno spojeni na odgovarajue sabirnice. Poevi od familije procesora Athlon64 iz 2003. godine, procesori kompanije AMD su obuhvatili vei deo funkcionalnosti severnog veznog ipa (prvenstveno komunikacija sa radnom memorijom). Zahvaljujui tome, vezni ip ove i kasnijih familija AMD procesora ima samo jedan deo. Memorijski kontroler je ugraen u procesor i u Intel-ovoj Core i7 arhitekturi, i novijoj Sandy Bridge. BIOS IP BIOS (Basic Input/Output System) ip je ROM (Flash) memorija koja sadri program. Rad raunara zapoinje izvravanjem ovog programa. To se desi kada se raunar ukljui. Osnovna funkcija ovog programa je da omogui punjenje operativnog sistema sa nekog od ureaja masovne memorije u radnu memoriju i njegovo pokretanje. Pored toga, BIOS omoguuje podeavanje raznih parametara matine ploe posredstvom svog Setup programa. Podeavanja utiu na rad raznih delova raunara, omoguuju izbor ureaja sa koga e se pokrenuti operativni sistem, utiu na postupak iskljuivanja raunara i omoguuju zadavanje ifre za pokretanje raunara, kao i vraanje parametara na inicijalno stanje. Pored ovog osnovnog BIOS-a, razni ureaji (grafiki adapteri, na primer) mogu imati i svoj posebni BIOS, koji se obino nadograuje na postojei. Parametri koji se podeavaju pomou BIOS-a se uvaju u posebnoj RAM memoriji koja se napaja iz baterije sa matine ploe. Ve due vreme postoje napori da se arhitektura BIOS-a, zacrtana osamdesetih godina prolog veka, unapredi. Tako, danas je na raspolaganju jo nekoliko reenja: EFI (odnosno, UEFI - Unified Extensible Firmware Interface), LinuxBIOS i Open Firmware (i njegove implementacije, kao to su OpenBOOT i

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

288

OpenBIOS). EFI je danas zastupljen u Intel-baziranim Apple Macintosh raunarima i pojedinim serverima. Open Firmware ima svoju primenu u SUN-ovim i IBM-ovim serverima i PowerPC-baziranim Apple Macintosh raunarima. LinuxBIOS se koristi u OLPC (One Laptop Per Child) projektu. SABIRNICE Danas najee koriena ulaznoizlazna sabirnica je PCI (Peripheral Component Interconnect) sabirnica. Ova sabirnica ostvaruje paralelnu vezu PCI kontrolera i odgovarajuih PCI kartica. Postoji 32-bitna ili 64-bitna verzija PCI sabirnice, pri emu je 32-bitna u mnogo iroj upotrebi. PCI sabirnica radi na 33MHz (poslednja revizija je uvela i brzinu od 66MHz). Ona koristi konektore od 18 za 32-bitne, odnosno 188 pinova za 64-bitne kartice. PCI kontroler po ukljuenju raunara preuzima od PCI kartica njihove zahteve za hardverskim resursima (memorijski i ulazno-izlazni adresni prostor, prekidi), i na osnovu toga svakoj kartici automatski dodeljuje traene resurse (plug and play). Ovu sabirnicu najee koriste zvune i mrene katrice, kontroleri diskova (dodatni ATA kontroler, ili SCSI kontroler, na primer), USB i FireWire kontroleri, starije grafike kartice, itd. Veina grafikih kartica, proizvednih u periodu od 1998. do 2005. godine, koristi AGP (Accelerated Graphics Port) sabirnicu. Ova sabirnica je uvedena poto se pokazalo da PCI sabirnica ne moe podrati protok podataka izazvan pojavom veih rezolucija grafikih adaptera i uvoenjem 3D funkcija. AGP sabirnica radi na 66MHz i koristi konektore od 18 pinova. Poslednja revizija ove sabirnice omoguava prenos 8 podataka u okviru jednog ciklusa (u oznaci AGPx8). PCI i naroito AGP sabirnice danas sve vie zamenjuje novija sabirnica, nazvana PCIe (PCI Express). Za razliku od PCI i AGP sabirnica, koje koriste paralelnu vezu ka periferijskim ureajima, PCIe koristi serijsku vezu. Pored toga, ona omoguuje povezivanje i odvezivanje ureaja u toku rada raunara (hot-plug). Veza sa ureajima kod PCIe sabirnice moe biti jednostruka (PCIe x1), ili viestruka (PCIe x2, x4, x8, x16, x32), u zavisnosti od toga koliko serijskih kanala podrava ureaj. U skladu sa tim, postoje i odgovarajui konektori (x1, x2, x4, x8, x16, x32), pri emu se ureaji uvek mogu zakaiti za svoj ili vei konektor. Tako, na primer, grafike kartice koriste uglavnom x16 konektore, dok mrene kartice koriste x1 konektore. Zbog velikog broja ureaja baziranih na PCI sabirnici, kao i zbog toga to za PCIe sabirnicu jo uvek ne postoji ira proizvodnja za neke kategorije ureaja (zvune kartice, na primer), dananje matine ploe na sebi obino imaju i PCI i PCIe sabirnicu. PCIe sabirnica je trenutno najkorienija kod grafikih adaptera (koji su ranije koristili AGP sabirnicu), kod dodatnih kontrolera hard diskova i kod mrenih krtica. Oekuje se da u narednom periodu i ostali ureaji preu na ovu sabirnicu. Poetkom 2007. godine je usvojena i specifikacija PCIe 2.0 sabirnice, kao i specifikacija External PCI Express koja omoguava

289

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

povezivanje eksternih ureaja preko PCIe magistrale. Finalna verzija PCIe 3.0 specifikacije se oekuje u toku 2009/2010. ATA (Advanced Technology Attachment) sabirnica je standardna sabirnica za povezivanje ureaja masovne memorije (hard diskovi, CD i DVD ureaji) na raunar. Ova sabirnica se naziva jo i ATAPI (Advanced Technology Attachment Packet Interface) i IDE (Integrated Drive Electronics). Ona ostvaruje paralelnu vezu ka ureajima i to putem 40-ilnog, odnosno 80-ilnog kabla (Slika 15.2.2).

Slika 15.2.2 ATA konektor SATA (Serial ATA) sabirnica je danas praktino zamenila ATA sabirnicu. Ona ostvaruje serijsku vezu ka ureajima i koristi 7-ilni kabl za povezivanje (Slika 15.2.3). Nakon uvoenja SATA sabirnice, standardna ATA sabirnica je preimenovana u PATA (Parallel ATA). I SATA sabirnica podrava povezivanje i odvezivanje ureaja tokom rada raunara. Danas se ve uveliko prave hard diskovi za ovu sabirnicu, a postoji i vei izbor optikih ureaja. Otuda se na novim matinim ploama nalaze sve ree nalazi PATA sabirnica, poto se njena uloga uglavnom svela na povezivanje CD i DVD ureaja sa PATA sabirnicom. Trenutno aktuelna verzija sabirnice je SATA/300 (ili, ee pominjana kao SATA II). Sredinom 2004. godine je ustanovljena i eSATA (External SATA) sabirnica, namenjena za povezivanje spoljnih ureaja. 2009 godine je predstavljena SATA 3.0 sabirnica koja omoguava brzine prenosa do 6Gb/s.

Slika 15.2.3 SATA konektori SCSI (Small Computer System Interface) sabirnica se danas uglavnom koristi za brze diskove kod serverskih raunara. Zasnovana je na 8-bitnoj ili 16-bitnoj paralelnoj vezi sa ureajima i omoguava povezivanje do 8 SCSI ureaja na jedan konektor, tako to se ureaji povezuju jedan na drugi (SCSI chain). Da bi se SCSI ureaji koristili, potreban je i SCSI kontroler, koji se na raunar povezuje preko PCI sabirnice. Postoji vie vrsta SCSI konektora koji imaju od 50 do 80 pinova, sa

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

290

razliitim rasporedima (Slika 15.2.4). 2003. godine je ustanovljena i SAS (Serial Attached SCSI) sabirnica, zasnovana na serijskoj vezi ka ureajima, koja omoguava povezivanje kako SAS diskova, tako i SATA diskova.

Slika 15.2.4 SCSI konektori Jo 90-tih godina prolog veka se ukazala potreba da se relativno spori spoljni ureaji poveu za raunar. Za njih je bilo neekonomino da koriste komplikovanije sabirnice kao to je PCI. To je dovelo do definisanja USB (Universal Serial Bus) sabirnice, koja je zasnovana na serijskoj vezi sa ureajima. Ova sabirnica omoguuje povezivanje i odvezivanje ureaja u toku rada raunara. U ureaje koji koriste ovu sabirnicu spadaju tastature, mievi, tampai, skeneri, FLASH diskovi, web kamere, fotoaparati, itd. Poslednja revizija ove sabirnice, USB 2.0, je donela znaajno poveanje protoka, tako da se danas ova sabirnica koristi i za povezivanje ureaja masovne memorije, kao to su hard diskovi i CD i DVD ureaji. Konektori postoje u tri varijante, standardni USB A i B konektori i mini-USB konektori, namenjeni malim ureajima, kao to su PDA ureaji, fotoaparati ili mobilni telefoni (Slika 15.2.5). USB kontroler se u raunaru obino nalazi ugraen u vezne ipove, a moe se nai i kao poseban kontroler povezan preko PCI sabirnice. 2009 godine je predstavljena USB 3.0 sabirnica koja omoguava brzinu do 5Gb/s.

Slika 15.2.5 USB konektori FireWire (ili IEEE 1394) sabirnica je prvobitno bila namenjena za povezivanje brzih spoljnih ureaja na raunar, sa mogunou povezivanja i odvezivanja ureaja tokom rada raunara. Veza sa ureajima je serijska, a koriste se dva tipa konektora, sa 4 i sa 6 pinova (Slika 15.2.6). Ova sabirnica se danas najvie koristi za povezivanje audio/video opreme (video kamere, kamkoderi), dok je ostale njene primene preuzela USB 2.0 sabirnica. FireWire kontroler se u raunaru obino nalazi kao poseban kontroler povezan preko PCI sabirnice, a postoje i reenja gde se on nalazi na matinoj ploi.

291

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

Slika 15.2.6 FireWire konektori Do uvoenja USB sabirnice i masovnije pojave USB mieva i tastatura, za povezivanje ovih ureaja korieni su 6-pinski PS/2 prikljuci i posebna serijska veza sa veznim ipovima.

15.3. RADNA MEMORIJA


U dananjim personalnim raunarima koristi se radna memorija u obliku DIMM (Dual In-Line Memory Module) modula. Kod njih se memorijski ipovi nalaze sa obe strane tampane ploe. Najvie su u upotrebi DDR (Double Data Rate) i DDR2 SDRAM (Synchronous DRAM) moduli (Slika 15.3.1). Oni omoguuju da se u okviru jednog ciklusa obave dve operacije za dve razliite memorijske lokacije. Time se udvostruuje brzina SDRAM memorije. Tako, u raunaru sa memorijskom sabirnicom na 100 MHz, DDR memorija efektivno radi na 200 MHz. Oznake ipova ovih memorija sadre frekvenciju rada, pa tako DDR ipovi koje rade na 200 MHz imaju oznaku DDR-200. Odgovarajui memorijski moduli sastavljeni od ovih ipova imaju oznaku koja sadri maksimalnu brzinu protoka, pa tako memorijski modul sastavljen od DDR-200 ipova ima oznaku PC1600, poto je njegova maksimalna brzina protoka 1600 Mbit/s. DDR2 memorija je poboljana varijanta DDR memorije po pitanju frekvencije, protoka i potronje. Nomenklatura je identina onoj koritenoj kod DDR memorijskih modula. DDR DIMM moduli sadre 184 pina pomou kojih se povezuju sa matinom ploom, dok DDR2 DIMM moduli imaju 80 pinova. Kako bi se izbeglo da se u matinu plou stavi pogrean memorijski modul, svaka vrsta modula ima jedan ili vie zareza izmeu pinova, koji se moraju poklapati sa ispupenjima u leitu memorijskog modula. Laptop raunari, zbog svojih malih dimenzija, koriste posebne SO-DIMM (Small Outline DIMM) memorijske module, koji su manji po dimenzijama od standardnih DIMM modula. Sredinom 2007. godine je uvedena i DDR3 memorija koja uvodi dalje poveanje protoka i smanjenje potronje.

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

292

Slika 15.3.1 DDR memorijski modul

15.4. GRAFIKI ADAPTER


Grafiki adapter omoguava prikaz slike na monitoru ili nekom drugom izlaznom ureaju (projektor, TV). Grafiki adapteri, proizvedeni u poslednjih godinu dana, gotovo iskljuivo koriste PCIe sabirnicu, najee PCIe x16, dok je ranije u irokoj upotrebi bila AGP sabirnica. Dva najvea proizvoaa grafikih adaptera su NVIDIA i AMD (ATI), dok ostali zauzimaju veoma mali udeo na tritu (VIA/S3, Matrox). Grafiki adapteri na sebi imaju sopstveni procesor kao i sopstvenu radnu memoriju (koriste se kako DDR2/DDR3 memorijski ipovi, tako i posebni GDDR memorijski ipovi). Pored posebnih grafikih adaptera, na pojedinim matinim ploama (naroito u kategoriji prenosnih raunara) su prisutni i integrisani grafiki adapteri (u okviru veznih ipova), koji kao radnu memoriju koriste deo radne memorije raunara (u ovoj kategoriji adaptera kao veoma zastupljen proizvoa se nalazi i Intel). Brzi razvoj grafikih adaptera za personalne raunare je poeo devedesetih godina prolog veka kada su se pojavili prvi grafiki adapteri koji su omoguavali ubrzavanje nekih prorauna vezanih za prikaz trodimenzionalnih objekata na ekranu. Poetkom 2010 se pojavio i prvi x86 procesor sa integrisanim grafikim adapterom Intel Core i5 661. Krajem 2010. godine Intel je predstavio novu arhitekturu Sandy Bridge koja takoe sadri grafiko jezgro unutar procesora, dok je AMD uradio slinu stvar sa AMD Fusion arhitekturom poetkom 2011. Dananji moderni grafiki adapteri poseduju vei broj jezgara (vie desetina/stotina), kao i do 2GB radne memorije i optimizovani su za paralelno izvravanje velikog broja prorauna. Upravo ova karakteristika je dovela do njihove upotrebe za mnogo iru kategoriju numerikih prorauna (GPGPU - General Purpose GPU). Pokazalo se da, kada su u pitanju intenzivni numeriki prorauni, procesori u grafikim adapterima mogu doneti znatna ubrzanja u odnosu na izvravanje istog prorauna na procesoru raunara. NVIDIA je za svoje grafike adaptere poetkom 2007. ponudila CUDA (Compute Unified Device Architecture) platformu koja omoguava izvravanje C-ovskih programa na grafikom adapteru. Poto CUDA platforma nije u potpunosti otvorena, razvijena je i OpenCL (Open

293

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

Computing Language) platforma koja omoguava transparentno iskoriavanje kako viejezgarnih centralnih procesora, tako i procesora u grafikom adapteru.

15.5. KUITE, NAPAJANJE I SISTEM ZA HLAENJE


Kuita za PC raunare se dele na poloena (desktop) i uspravna (tower) kuuta. Danas se najvie koriste uspravna kuita (Slika 15.5.1). Ona se dele na mala, srednja i velika (MiniTower, MidiTower i BigTower). Veliina kuita zavisi od broja potrebnih ureaja. Tako, za serverske raunare se koriste velika kuita, dok se za kune i kancelarijske primene uglavnom koriste srednja i mala kuita.

Slika 15.5.1 Primer uspravnog kuita Kuite obino dolazi sa ugraenim napajanjem i osnovnim sistemom za hlaenje. Napajanje treba da odgovara maksimalnoj ukupnoj potronji svih organizacionih komponenti raunara. ATX napajanja omoguavaju softversku kontrolu ukljuivanja i iskljuivanja raunara. Osnovni sistem za hlaenje obino nije u stanju da odri dovoljno nisku temperaturu u kuitu tokom rada raunara, pa posebno hlaenje obino imaju procesor, vezni ipovi i grafiki adapter. Posebno hlaenje je esto poeljno i za hard diskove i memorijske module. Da bi se proizvedena toplota izbacila iz kuita, neophodno je da se na njemu nalazi dva ili

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

294

vie ventilatora, kako za ubacivanje sveeg vazduha, tako i za izbacivanje toplog vazduha. Novija reenja hlaenja komponenti su zasnovana na hlaenju tenostima, ime se dobija dosta tii rad raunara.

295

arko ivanov - Arhitektura raunara (pregled principa i evolucije)

LITERATURA
U pisanju ove knjige korieni su sledei izvori: TANENBAUM, A.S.: Structured Computer Organization, fifth edition, Upper Saddle River, NJ: Prentice Hall, 2006. HENNESSY, J.L., PATTERSON D.A.: Computer Architecture A Quantitative Approach, fourth edition, San Francisco, CA: Morgan Kaufman, 2006. HENNESSY, J.L., PATTERSON D.A.: Computer Organization and Design, The Hardware / Software Interface, fourth edition, San Francisco, CA: Morgan Kaufman, 2008. Prethodno pomenute knjige omoguuju potpunije upoznavanje materije vezane za arhitekturu raunara. One sadre i iscrpan pregled literature iz oblasti arhitekture raunara.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

296

INDEKS SLIKA
Slika 1.3.1 Tablica sabiranja za binarni brojni sistem ............................................................ 5 Slika 1.3.2 Elektrino kolo - ekvivalent logike funkcije i..................................................... 6 Slika 1.3.3 Elektrino kolo - ekvivalent logike funkcije ili................................................... 6 Slika 1.3.4 Elektrino kolo - ekvivalent logike funkcije negirano i ...................................... 7 Slika 2.1.1 Cifre dekadnog brojnog sistema i njihovi komplementi ..................................... 10 Slika 2.1.2 Primeri vaenja relacije < ................................................................................... 13 Slika 2.3.1 Konvertovanje razlomljenog broja 0.210 ............................................................. 17 Slika 2.4.1 Izlasci van opsega kod sabiranja oznaenih celih brojeva u ............................... 20 Slika 2.4.2 Izlasci van opsega kod oduzimanja oznaenih celih brojeva u komplement 2 predstavi ............................................................................................................. 21 Slika 2.4.3 Prikaz uslova vaenja relacija za neoznaene brojeve........................................ 23 Slika 2.4.4 Prikaz uslova vaenja relacija za oznaene brojeve............................................ 23 Slika 2.4.5 Pregled karakteristinih sluajeva vaenja relacije < ......................................... 23 Slika 3.2.1 Tabela sabiranja parova bita ............................................................................... 29 Slika 3.2.2 Tabela oduzimanja parova bita........................................................................... 30 Slika 3.2.3 Pregled uslovnih upravljakih naredbi ............................................................... 34 Slika 3.6.1 Zavisnost broja naredbi od broja poziva asemblerskog ekvivalenta potprograma nzd ..................................................................................................................... 50 Slika 3.6.2 Uloga makro pretprocesora................................................................................. 51 Slika 3.7.1 Izgled steka ......................................................................................................... 56 Slika 3.7.2 Izgled frejma....................................................................................................... 58 Slika 3.7.3 Primer frejma...................................................................................................... 60 Slika 4.1.1 Raspored bita u memorijskoj lokaciji ................................................................. 62 Slika 4.1.2 Principijelni izgled memorijske lokacije ............................................................ 62 Slika 4.1.3 Pojednostavljeni principijelni izgled memorijske lokacije ................................. 63 Slika 4.1.4 Pojednostavljeni principijelni izgled memorije .................................................. 63 Slika 4.1.5 Principijelni izgled memorije sa 4 lokacije......................................................... 65 Slika 4.2.1 Izgled mainskog formata naredbe ..................................................................... 67 Slika 4.3.1 Organizacija procesora KONCEPT .................................................................... 75 Slika 4.3.2 Organizacija aritmetiko-logike jedinice .......................................................... 76 Slika 4.4.1 Opis prelazaka izmeu mikro-programa............................................................. 85 Slika 4.5.1 Vremenski dijagram periodine izmene vrednosti promenljive T...................... 86 Slika 4.5.2 Vremenski dijagram periodine izmene vrednosti promenljivih R i T............... 87 Slika 4.5.3 Organizacija upravljake jedinice....................................................................... 88 Slika 4.7.1 Upravljanje prekidaima P2, P3 i P4 .................................................................. 91 Slika 4.7.2 Upravljanje ulaznim prekidaima registara opte namene ................................. 92 Slika 4.7.3 Upravljanje izlaznim prekidaima registara opte namene................................. 93 Slika 4.7.4 Upravljanje prekidaima od P37 do P44 ............................................................ 93 Slika 4.7.5 Funkcije koje opisuju dekodiranje naredbi ......................................................... 94 Slika 4.7.6 Upravljanje prekidaima od P45 do P52 ............................................................ 94 Slika 4.8.1 Mainski oblik inicijalnog i mikro-programa dobavljanja.................................. 95 Slika 4.8.2 Mainski oblik mikro-programa obavljanja 1. tipa naredbi ................................ 95

297

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Slika 4.8.3 Mainski oblik mikro-programa obavljanja 2. tipa naredbi ................................96 Slika 4.8.4 Mainski oblik mikro-programa obavljanja 3. tipa naredbi ................................96 Slika 4.8.5 Mainski oblik mikro-programa obavljanja 4. tipa naredbi ................................97 Slika 4.8.6 Mainski oblik mikro-programa obavljanja 5. tipa naredbi ................................97 Slika 4.8.7 Mainski oblik mikro-programa obavljanja 6. tipa naredbi ................................98 Slika 4.8.8 Mainski oblik mikro-programa obavljanja 7. tipa naredbi ................................98 Slika 4.8.9 Mainski oblik mikro-programa obavljanja 8. tipa naredbi ................................99 Slika 4.8.10 Mainski oblik mikro-programa obavljanja 9. tipa naredbi ..............................99 Slika 4.8.11 Mainski oblik mikro-programa obavljanja 10. tipa naredbi ..........................100 Slika 4.8.12 Mainski oblik mikro-programa obavljanja 10. tipa naredbi ..........................100 Slika 4.8.13 Mainski oblik mikro-programa obavljanja 12. tipa naredbi ..........................101 Slika 4.8.14 Mainski oblik mikro-programa obavljanja 13. tipa naredbi ..........................101 Slika 4.8.15 Mainski oblik mikro-programa obavljanja 14. tipa naredbi naredbi .............102 Slika 4.8.16 Mainski oblik mikro-programa obavljanja 15. tipa naredbi ..........................102 Slika 4.9.1 Vremenski dijagram rada procesora KONCEPT ..............................................103 Slika 5.1.1 Organizacija raunara sastavljenog od procesora i memorije ...........................105 Slika 5.1.2 Organizacija raunara KONCEPT ....................................................................105 Slika 5.1.3 Upravljaka tabla raunara KONCEPT ............................................................106 Slika 5.2.1 Princip rada tastature.........................................................................................108 Slika 5.2.2 Organizacija kontrolera tastature ......................................................................109 Slika 5.2.3 Princip rada ekrana (kod znakai izaziva zatvaranje prekidaai).........................109 Slika 5.2.4 Organizacija kontrolera ekrana .........................................................................111 Slika 5.2.5 Organizacija raunara KONCEPT sa znakovnim ulazom i izlazom .................111 Slika 5.2.6 Sedmobitna ASCII tabela (kodovi su dati heksadecimalno)..............................112 Slika 5.2.7 Slojevita struktura BIOS-a ................................................................................116 Slika 5.3.1 Principijelni izgled magnetnog diska ................................................................118 Slika 5.3.2 Organizacija kontrolera diska ...........................................................................119 Slika 5.3.3 Slojevita struktura proirenog BIOS-a ..............................................................121 Slika 5.3.4 Organizacija raunara KONCEPT sa radnom i masovnom memorijom...........121 Slika 5.4.1 Sve kodne rei sa tri bita ...................................................................................122 Slika 5.4.2 Ustrojstvo kodne rei sa etiri bita podataka i tri bita parnosti .........................123 Slika 5.5.1 Slojevita struktura operativnog sistema ............................................................125 Slika 5.6.1 Slojevi operativnog sistema ..............................................................................129 Slika 5.7.1 Organizacija upravljake jedinice koja podrava prekide.................................133 Slika 5.7.2 Organizacija raunara KONCEPT koji podrava prekide.................................135 Slika 5.7.3 Organizacija drajvera terminala ........................................................................138 Slika 5.7.4 Organizacija drajvera diska...............................................................................138 Slika 5.8.1 Organizacija raunara KONCEPT zasnovanog na sabirnici .............................141 Slika 5.9.1 Preslikavanje logikih adresnih prostora raznih procesa u fiziki adresni prostor ..........................................................................................................................144 Slika 5.9.2 Postupak pretvaranja logike adrese u fiziku ..................................................145 Slika 6.2.1 Tabela naredbi...................................................................................................152 Slika 6.2.2 Vrednosti brojaa lokacija ................................................................................154 Slika 6.2.3 Tabela labela .....................................................................................................154 Slika 6.2.4 Tabela objektne sekvence .................................................................................155 Slika 6.3.1 Tabela makro imena i tabela makro tela ...........................................................156

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

298

Slika 6.3.2 Tabela argumenata............................................................................................ 157 Slika 6.4.1 Tabela objektne sekvence sa oznaenim apsolutnim adresama ........................ 158 Slika 6.4.2 Tabela relokacije............................................................................................... 159 Slika 6.4.3 Tabela objektne sekvence sa relativnim adresama, koje su oznaene strelicama .......................................................................................................................... 160 Slika 6.4.4 Tabela objektne sekvence i tabele relokacije, nedefinisanih i ulaznih labela programa........................................................................................................... 161 Slika 6.4.5 Tabela objektne sekvence i tabele relokacije, nedefinisanih i ulaznih labela potprograma...................................................................................................... 162 Slika 6.4.6 Tabela objektnih sekvenci ................................................................................ 163 Slika 6.4.7 Tabela spoljanjih labela................................................................................... 163 Slika 6.4.8 Tabela izvrne sekvence ................................................................................... 164 Slika 8.1.1 Hronologija vanih dogaaja za razvoj raunara.............................................. 171 Slika 8.1.2 Tipina organizacija raunara prve generacije ................................................. 172 Slika 9.1.1 Osnovna digitalna kola ..................................................................................... 174 Slika 9.1.2 Principijelna organizacija radne memorije, zasnovane na magnetnim jezgricama .......................................................................................................................... 175 Slika 9.1.3 Tipina organizacija raunara druge generacije ............................................... 177 Slika 9.1.4 Primeri preklapanja potprograma u radnoj memoriji........................................ 179 Slika 10.1.1 Dekoder 2x4 ................................................................................................... 181 Slika 10.1.2 Tipina organizacija mini-raunara ................................................................ 183 Slika 10.1.3 Organizacija oiene upravljake jedinice...................................................... 184 Slika 10.1.4 Poreenje izvravanja dve naredbe i jedne sloenije ekvivalentne naredbe ... 185 Slika 10.1.5 Dva naina organizovanja bajta u rei............................................................ 187 Slika 10.1.6 Poloaj kontrolera virtuelne memorije u organizaciji raunara ...................... 190 Slika 10.1.7 Tabela stranica (sve adrese su binarni brojevi)............................................... 191 Slika 10.1.8 Asocijativna memorija sa dve trobitne lokacije.............................................. 192 Slika 10.1.9 Skrivena memorija sa jednom lokacijom........................................................ 195 Slika 10.1.10 Poloaj kontrolera skrivene memorije u organizaciji raunara..................... 195 Slika 10.1.11 Kombinacija virtuelne i skrivene memorije.................................................. 196 Slika 10.2.1 Organizacija radne memorije, sastavljene od dvobajtnih little endian rei. 198 Slika 10.2.2 Serijsko vezivanje aktivnih strana linijom odobrenja ..................................... 205 Slika 10.2.3 Organizacija raunara sa memorijskom i ulazno-izlaznom sabirnicom.......... 206 Slika 10.2.4 Asocijativna memorija (od 4 lokacije) sa punom asocijativnou.................. 207 Slika 10.2.5 Asocijativna memorija (od 4 lokacije) sa dvostrukom asocijativnou .......... 208 Slika 10.2.6 Asocijativna memorija (od 4 lokacije) sa jednostrukom asocijativnou ....... 209 Slika 10.2.7 Pregled sluajeva itanja i pisanja skrivene memorije.................................... 210 Slika 10.2.8 Pretvaranje virtuelne adrese u fiziku............................................................. 211 Slika 10.2.9 Tabela stranica iz dva nivoa ........................................................................... 213 Slika 11.1.1 Primer jedno i dvodimenzionalne organizacije radne memorije sa 16 lokacija .......................................................................................................................... 220 Slika 11.1.2 Tipina organizacija mini-raunara etvrte generacije ................................... 222 Slika 11.1.3 Preklapajui nain rada procesora sa protonom strukturom ......................... 225 Slika 11.1.4 Prepletena radna memorija sa osam lokacija raspodeljenih u dva memorijska modula .............................................................................................................. 228 Slika 11.2.1 Pretvaranje logike adrese u fiziku kod segmentirane radne memorije ........ 233

299

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Slika 11.2.2 Pretvaranje logike adrese u fiziku kod stranine segmentacije....................235 Slika 11.2.3 Dvoulazna video memorija i video kontroler..................................................238 Slika 11.2.4 Organizacija vieprocesorskog raunara sa vie lokalnih i globalnih sabirnica ..........................................................................................................................240 Slika 11.2.5 Unakrsna matrica ............................................................................................240 Slika 11.2.6 Vieprocesorski raunar sa jednom sabirnicom i skrivenim memorijama ......241 Slika 12.1.1 Princip toka podataka......................................................................................249 Slika 12.1.2 Sistoliki raunar ............................................................................................251 Slika 12.1.3 SIMD raunar ..................................................................................................252 Slika 12.1.4 Multiprocesor..................................................................................................253 Slika 12.1.5 Multiraunar....................................................................................................254 Slika 12.1.6 Multiraunar organizovan oko eternet lokalne mree .....................................254 Slika 12.1.7 Vezivanje registara i aritmetiko-logike jedinice pomou 3 sabirnice..........256 Slika 12.2.1 Organizacija invertovane tabele stranica.........................................................263 Slika 12.2.2 Stanja prekidaa sa 2 ulaza i 2 izlaza ..............................................................264 Slika 12.2.3 Primer upotrebe prekidaa sa 2 ulaza i 2 izlaza ..............................................264 Slika 12.2.4 Princip rada dvostepene prekidake mree .....................................................265 Slika 12.2.5 Primer upotrebe dvostepene prekidake mree...............................................266 Slika 12.2.6 Organizacija BBN Butterfly multiprocesora....................................................267 Slika 12.2.7 Primer dvodimenzionalne mree.....................................................................268 Slika 12.2.8 Primer etvorodimenzionalne hiperkocke.......................................................269 Slika 12.2.9 Primer debelog drveta za 16 vorova..............................................................270 Slika 13.1.1 Organizacija radne stanice koja je zasnovana na PENTIUM 4 procesoru.......275 Slika 15.2.1 Pojednostavljeni izgled matine ploe ............................................................286 Slika 15.2.2 ATA konektor ..................................................................................................289 Slika 15.2.3 SATA konektori ...............................................................................................289 Slika 15.2.4 SCSI konektori ................................................................................................290 Slika 15.2.5 USB konektori.................................................................................................290 Slika 15.2.6 FireWire konektori..........................................................................................291 Slika 15.3.1 DDR memorijski modul ..................................................................................292 Slika 15.5.1 Primer uspravnog kuita................................................................................293

Anda mungkin juga menyukai