arhitektura racunara

Upload: mladi-ren

Post on 07-Jul-2015

1.266 views

Category:

Documents


5 download

TRANSCRIPT

ARHITEKTURA RAUNARA (pregled principa i evolucije)

Miroslav Hajdukovi

ELEKTRONSKO IZDANJE VERZIJA 2 NOVI SAD, 2004.

PREDGOVORCilj ove knjige je da stvori funkcionalno zaokruenu sliku o radu raunara. Zbog toga je akcenat stavljen na pregled celine, a ne na razradu detalja. Knjiga se, zato, zaustavlja na logikom niovu i ne uputa se u razmatranje digitalnih sklopova, prisutnih ispod tog nivoa. Za izlaganje, po autorovom miljenju, sutinskih principa funkcionisanja raunara, koristi se hipotetski raunar KONCEPT. Njegov razvoj je voen idejom da se na to jednostavniji nain podri izvravanje programa, izraenih procedurnim programskim jezicima. Izlaganje kree od funkcionalnog opisa procesora, nastavlja se opisom njegovog korienja na asemblerskom nivou i zavrava se izlaganjem osnova funkcionisanja ostalih delova hipotetskog raunara KONCEPT. Da italac ove knjige ne bi ostao samo na poznavanju principa funkcionisanja hipotetskog raunara, izloena je i evolucija elektronskih raunara, sa posebnim osvrtom na karakteristike raunara u pojedinim evolucionim fazama i na faktore koji su usmeravali ovu evoluciju. Posebna panja je posveena raunarima koji su izvrili znaajan uticaj na trite i ija upotreba nije bila ograniena samo na pojedina podruja primene. Autor se zahvaljuje svom saradniku arku ivanovu za uloeni napor prilikom izrade crtea, za paljivo itanje rukopisa i ukazivanje na mnotvo greaka, kao i za sugestije koje su pomogle da se rukopis pobolja. Verzija 2 ove knjiga je nastala ispravljanjem greaka koje su uoene u tekstu njene prve verzije, kao i pojanjavanjem i proirenjem delova ovog teksta koji su bili nedovoljno razumljivi studentima.

SADRAJ 1. UVOD 1.1 POJAM ARHITEKTURE RAUNARA 1.2 MODEL RAUNARA OSOBINE PROCEDURNIH PROGRAMSKIH JEZIKA PRIMER OPTEG OPISA OBRADE PODATAKA MEMORIJA PROCESOR ADRESIRANJE SKUP NAREDBI ASEMBLER I KOMPAJLER 1.3 FIZIKA OSNOVA MODELA RAUNARA 1.4 PITANJA BROJNI SISTEMI I PREDSTAVE BROJEVA 2.1 ARITMETIKA OGRANIENOG BROJA CIFARA 2.2 PREDSTAVLJANJE REALNIH BROJEVA 2.3 BINARNI BROJNI SISTEM 2.4 ARITMETIKA OGRANIENOG BROJA CIFARA U BINARNOM BROJNOM SISTEMU 2.5 PREDSTAVLJANJE VREDNOSTI REALNOG I ZNAKOVNOG TIPA U BINARNOM BROJNOM SISTEMU 2.6 PITANJA ASEMBLERSKO PROGRAMIRANJE 3.1 NIVOI PROGRAMIRANJA 3.2 ARHITEKTURA NAREDBI PROCESORA KONCEPT 3.3 ASEMBLERSKI JEZIK KONCEPT 3.4 PRIMERI ASEMBLERSKIH PROGRAMA RAUNANJE NAJVEEG ZAJEDNIKOG DELIOCA IZLAZAK VAN OPSEGA KOD NEOZNAENIH CELIH BROJEVA IZLAZAK VAN OPSEGA KOD OZNAENIH CELIH BROJEVA RUKOVANJE MAINSKOM NORMALIZOVANOM FORMOM RUKOVANJE LOGIKIM VREDNOSTIMA RAUNANJE VREDNOSTI CELOBROJNOG IZRAZA RUKOVANJE NIZOVIMA RUKOVANJE SLOGOVIMA TUMAENJE NAINA ADRESIRANJA ZA UPRAVLJAKE NAREDBE 3.5 POTPROGRAM 3.6 MAKRO 3.7 STEK 3.8 PITANJA 1 1 1 1 2 2 3 3 4 4 5 8 9 9 13 14 17 23 26 27 27 28 35 38 38 39 40 40 41 41 42 43 44 44 48 55 60

2.

3.

4.

MEMORIJA I PROCESOR RAUNARA KONCEPT 4.1 ORGANIZACIJA MEMORIJE RAUNARA KONCEPT 4.2 KODIRANJE I MAINSKI FORMATI NAREDBI PROCESORA KONCEPT 4.3 ORGANIZACIJA PROCESORA KONCEPT 4.4 UPRAVLJANJE PROCESOROM KONCEPT MIKRO-POTPROGRAMI POJEDINIH OPERANADA MIKRO-PROGRAMI IZVRAVANJA INICIJALNI MIKRO-PROGRAM 4.5 UPRAVLJAKA JEDINICA PROCESORA KONCEPT 4.6 UPRAVLJANJE PREKIDAIMA IZ UPRAVLJAKE JEDINICE PROCESORA KONCEPT 4.7 UPRAVLJANJE PREKIDAIMA IZVAN UPRAVLJAKE JEDINICE PROCESORA KONCEPT 4.8 MAINSKI OBLICI MIKRO-PROGRAMA 4.9 MAINSKI OBLICI MIKRO-POTPROGRAMA 4.10 SADRAJI ADRESNIH MEMORIJA MIKRO-PROGRAMA I MIKRO-POTPROGRAMA 4.11 RAZMATRANJE RADA PROCESORA KONCEPT 4.12 PITANJA 5. RAUNAR KONCEPT 5.1 ORGANIZACIJA RAUNARA KONCEPT 5.2 ULAZNI I IZLAZNI UREAJI RAUNARA KONCEPT KOMANDNI JEZIK TASTATURA EKRAN RAUNAR KONCEPT SA ZNAKOVNIM ULAZOM I IZLAZOM ZNAKOVNA INTERAKCIJA KORISNIKA I RAUNARA MONITOR 5.3 VRSTE MEMORIJE 5.4 OPERATIVNI SISTEM 5.5 PREKLJUIVANJE 5.6 PREKID 5.7 SABIRNICA 5.8 VIEKORISNIKI RAD 5.9 PITANJA 6. SISTEMSKI PROGRAMI 6.1 EDITOR 6.2 ASEMBLER 6.3 MAKRO PRETPROCESOR 6.4 LINKER 6.5 LOUDER 6.6 DIBAGER 6.7 PITANJA

61 61 64 69 73 74 77 80 81 85 89 91 94 97 98 99 101 101 103 103 104 105 107 108 111 112 117 121 124 131 135 140 143 143 144 148 150 158 158 159

7.

8.

ARHITEKTURA RAUNARA 7.1 PRECIZIRANJE POJMA ARHITEKTURE RAUNARA 7.1 POKRETAI RAZVOJA ARHITEKTURE RAUNARA 7.2 PITANJA EVOLUCIJA ARHITEKTURE RAUNARA 8.1 EVOLUCIONI PERIODI 8.2 PERIOD OKO 1950. GODINE 8.3 PERIOD OKO 1960. GODINE 8.4 PERIOD OKO 1970. GODINE ARHITEKTURA NAREDBI ZA IBM SYSTEM/360 ARHITEKTURA NAREDBI ZA DEC PDP11 OSOBINE MAGNETNOG DISKA ORGANIZACIJA SABIRNICE ORGANIZACIJA ASOCIJATIVNE MEMORIJE SKRIVENA MEMORIJA VIRTUELNA MEMORIJA MEMORIJSKA HIJERARHIJA PROBLEM SINHRONIZACIJE 8.5 PERIOD OKO 1980 GODINE ARHITEKTURA NAREDBI ZA DEC VAX11/780 ARHITEKTURA NAREDBI ZA INTEL 8086 SEGMENTNA ORGANIZACIJA RADNE MEMORIJE ARHITEKTURA NAREDBI ZA INTEL 80386 PRINCIP RADA MIA OSOBINE GRAFIKIH TERMINALA PRINCIPI RADA LOKALNIH MREA VIEPROCESORSKI RAUNARI SA ZAJEDNIKOM SABIRNICOM 8.6 PERIOD OKO 1990. GODINE RISC PROCESORI IEEE 754 STANDARD ZA ARITMETIKU REALNIH BROJEVA ARHITEKTURA NAREDBI ZA MIPS INTEL PENTIUM PRO PROCESOR EVOLUCIJA MASOVNE MEMORIJE UTICAJ RISC PROCESORA NA VIRTUELNU MEMORIJU SPOJNE MREE BARIJERNA SINHRONIZACIJA 8.7 PERIOD OKO 2000. GODINE UGRAENI RAUNARI RADNE STANICE SERVERI PARALELIZAM UNUTAR PROCESORA ARHITEKTURA NAREDBI ZA INTEL ITANIUM 8.8 PITANJA

161 161 162 163 164 164 164 167 172 188 189 192 192 196 198 200 203 204 205 216 217 219 221 223 224 225 226 228 239 243 244 245 245 246 247 255 256 256 256 257 259 260 261

9.

PROCENA OSOBINA RAUNARA 9.1 NAIN PROCENE OSOBINA RAUNARA 9.2 PITANJA LITERATURA

266 266 268 269

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

1

1. UVOD1.1 POJAM ARHITEKTURE RAUNARAArhitektura 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. Rezultati programiranja zavise od osobina skupa naredbi raunara. Ovim osobinama se bavi arhitektura naredbi (instruction set architecture). 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 i arhitekturu naredbi i njenu implementaciju. Izmeu arhitekture naredbi i njene implementacije postoji meuzavisnost, jer implementacija odraava i ograniava arhitekturu naredbi.

1.2 MODEL RAUNARANa 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. 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.

2

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Promenljive, vrednosti prostih tipova i operacije (upravljake i one za rukovanje promenljivim i vrednostima prostih tipova) predstavljaju osnovne elemente procedurnih programskih jezika PRIMER OPTEG OPISA OBRADE PODATAKA Kao primer opteg opisa obrade podataka moe da poslui nalaenje najveeg zajednikog delioca (NZD) neoznaenih brojeva 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 razlika. Precizan postupak nalaenja najveeg zajednikog delioca opisuje sekvenca programa, izraena 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 prethodne sekvence vai: a = b = NZD = 2 (radi jednostavnosti, optost prethodne sekvence je ograniena na odreivanje najveeg zajednikog delioca neoznaenih brojeva 12 i 10). MEMORIJA Prirodno je da model raunara, namenjen za izvravanje programa koji su izraeni procedurnim programskim jezicima, podri sva tri bitna elementa ovih jezika. Za podrku promenljivim, potrebna je memorija (memory), 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) adresu (brojevi 0, 1, 2, ...), po kojoj se razlikuje od drugih lokacija. Pored adrese, lokacija moe da poseduje i posebnu oznaku ili labelu (label). Kada postoji, labela se koristi umesto adrese. Labela odgovara imenu promenljive koju predstavlja labelirana lokacija. Za lokacije je vana osobina univerzalnosti, koja podrazumeva da svaka lokacija moe da sadri vrednost bilo kog prostog tipa i adresu. Univerzalnost

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

3

lokacija se postie kodiranjem svih vrednosti realnog, znakovnog i logikog tipa vrednostima celog tipa, odnosno 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 Za podrku operacijama potreban je procesor (processor), sastavljen od sklopova i registara. Sklopovi omoguuju obavljanje pojedinih operacija (namenjenih za rukovanje vrednostima prostih tipova), a registri sadre vrednosti prostih tipova koje se obrauju u toku obavljanja 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 obavljanja operacije, procesor preuzima oznaku operacije i njene operande. Operandi su ili vrednosti prostih tipova na koje se operacija odnosi, ili adrese lokacija na koje se operacija odnosi, odnosno, jednom reju, vrednosti. Oznaka operacije odreuje sklop u kome se obrauju vrednosti zadane operandima. Oznaka operacije i operandi obrazuju naredbu (instruction) procesora. Procesor obavlja 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 indirektni (register indirect) operand, kada mu odgovara oznaka registra sa adresom memorijske lokacije sa ulaznom vrednou. Izlazni operand se naziva indirektni operand, kada mu odgovara oznaka registra sa adresom izlazne memorijske lokacije. Indirektni operandi su potrebni, radi pokazivakih promenljivih. Ulazni operand se naziva indeksni (indexed) operand, kada mu odgovaraju posebna vrednost (indeks) i oznaka registra, iji sadraj u sumi sa prethodnim indeksom daje adresu memorijske lokacije sa ulaznom vrednou.

4

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Izlazni operand se naziva indeksni operand, kada mu odgovaraju posebna vrednost (indeks) i oznaka registra, iji sadraj u sumi sa prethodnim 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, indirektno i indeksno adresiranje. SKUP NAREDBI Zahvaljujui kodiranju vrednosti realnog, znakovnog i logikog tipa vrednostima celog tipa, skup naredbi procesora se svodi na podskup aritmetikih operacija, kao i na logike i upravljake operacije. Od aritmetikih operacija dovoljno je da procesor podri celobrojno sabiranje i oduzimanje, jer se ostale aritmetike operacije mogu izraziti pomou celobrojnog sabiranja i oduzimanja. I relacione operacije 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 se pri oduzimanju ne javi izlazak van opsega ili je rezultat 0,

12

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

5. relacija > vai, ako se pri oduzimanju ne javi izlazak van opsega i rezultat nije 0, a 6. 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 = > = > , i SKOI_ZA_= SKOI_ZA__> SKOI_ZA__ i SKOI_ZA_ i SKOI_ZA__), a sa desne strane stelice se navode simboli koji opisuju generisanje nekog elementa jezika. Element jezika, koji je izgenerisan na osnovu nekog pravila, se koristi umesto imena tog pravila. EBNF notacija koristi razmak za radvajanje simbola, vertikalnu crtu ( |) za razdvajanje alternativnih simbola, okrugle zagrade za grupisanje simbola, uglaste zagrade za oznaavanje simbola koji se mogu pojaviti nijednom ili jednom i vitiaste zagrade za oznaavanje simbola koji se mogu pojaviti nijednom, jednom ili vie puta. Kada znakovi, koje koristi EBNF notacija (strelica, razmak, vertikalna crta, okrugle, uglaste i vitiaste zagrade), predstavljaju simbole jezika, tada se oni navode izmeu navodnika. Primer pravila u EBNF notaciji je naveden u nastavku:malo_slovo > a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|r|s||t|u|v|z|

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 heksadecimalnog broja opisuje pravilo:heksadecimalni_broj > 0{cifra|A|B|C|D|E|F}

(heksadecimalni broj zapoinje nulom, iza koje mogu da slede cifre ili velika slova A, B, C, D, E, F). Podrazumeva se da heksadecimalni broj sadri najvie do 9 znakova. Obrazovanje labele opisuje pravilo:labela > malo_slovo{malo_slovo|cifra|_}

36

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

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 > heksadecimalni_broj|#labela

Kao neposredni operand slui vrednost navedenog heksadecimalnog 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 opisuje pravilo:registarski_operand > R(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15)

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 indirektnog operanda opisuje pravilo:indirektni_operand > [registarski_operand]

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

Kao indeksni operand slui memorijska lokacija iju adresu odreuje zbir dve komponente. Jedna komponenta je navedeni heksadecimalni broj ili adresa memorijske lokacije koju oznaava navedena labela, a druga komponenta 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 ulaznog operanda opisuje pravilo:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

37

ulaz -> neposredni_operand |direktni_operand |registarski_operand |indirektni_operand |indeksni_operand

a obrazovanje izlaznog operanda opisuje pravilo:izlaz -> direktni_operand |registarski_operand |indirektni_operand |indeksni_operand

Obrazovanje razmaka opisuje pravilo:razmak > { }

(izmeu apostrofa se nalazi razmak). Obrazovanje nove linije opisuje pravilo:nova_linija > nova linija{ }

(izmeu apostrofa se nalaze upravljaki znak nova linija i razmak). Obrazovanje obine asemblerske naredbe opisuje pravilo:naredba -> nova_linija [labela] razmak ((SABERI|SABERI_P|ODUZMI|ODUZMI_P|I|ILI) razmak ulaz,ulaz,izlaz |(NE|LEVO|DESNO) razmak ulaz,izlaz |UPOREDI razmak ulaz,ulaz)

Obrazovanje upravljake asemblerske naredbe opisuje pravilo:upravljaka_naredba -> nova_linija [labela] razmak (SKOI |SKOI_ZA_=|SKOI_ZA_N |SKOI_ZA_|SKOI_ZA_NE_N |SKOI_ZA_=|SKOI_ZA_NE_P |SKOI_ZA_> |SKOI_ZA_= |SKOI_ZA__> |SKOI_ZA__ nova_linija [labela] razmak (ZAUZMI|NAPUNI) razmak heksadecimalni_broj

Vano je uoiti da su direktive upuene asembleru (prevodiocu), a ne procesoru. Znai, direktive nisu izvrne (one 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|naredba|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 zasebnog dela, opisuje pravilo:program -> nova_linija POETAK telo nova_linija KRAJ

Podrazumeva se da izvravanje asemblerskog programa zapoinje od prve asemblerske naredbe iz njegovog tela i (sekvencijalno) tee ka poslednjoj asemblerskoj naredbi iz njegovog tela, ako upravljake naredbe ne izmene redosled izvravanja naredbi.

3.4 PRIMERI ASEMBLERSKIH PROGRAMARAUNANJE NAJVEEG ZAJEDNIKOG DELIOCA Raunanje najveeg zajednikog delioca opisuje asemblerski program:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

39

a b ponovo

vee manje kraj

POETAK NAPUNI NAPUNI UPOREDI SKOI_ZA_= SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI SKOI KRAJ

0C 0A a,b kraj manje a,b,a ponovo b,a,b ponovo kraj

Telo asemblerskog programa zapoinje opisom zauzimanja i inicijalizacije ( NAPUNI) dve memorijske lokacije, za promenljive a i b. Zatim sledi opis poreenja (UPOREDI) vrednosti promenljivih a i b. Ako su pomenute vrednosti jednake, promenljive a i b sadre najvei zajedniki delilac, pa sledi odlazak (SKOI_ZA_=) u beskonanu petlju, koja oznaava kraj programa. Ako je vrednost promenljive a manja od vrednosti promenljive b (SKOI_ZA_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);

46

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

dodeljuje promenljivoj procedure:nzd(x,y,&z);

z

najvei zajedniki delilac celih brojeva 12 i 10, a poziv iste

dodeljuje promenljivoj z najvei zajedniki delilac vrednosti promenljivih x i y. 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 zadatak programera, jer sadri upravljaku naredbu POZOVI, koja omoguuje, ne samo odlazak na izvravanje potprograma, nego i smeta povratnu adresu u registar R15. Zahvaljujui tome, povratak iz potprograma omoguuje upravljaka naredba SKOI, ako se, kao njen operand, navede oznaka registra R15. Preostali registri procesora KONCEPT mogu biti iskorieni za prenos argumenata, za ta je neophodna usaglaenost opisa i poziva potprograma. Uz pretpostavku da se registar R1 koristi za smetanje vrednosti prvog ulaznog parametra, registar R2 za smetanje vrednosti drugog ulaznog parametra, a registar R0 za smetanje povratne vrednosti funkcije, asemblerski ekvivalent opisa funkcije nzd izgleda:nzd UPOREDI SKOI_ZA_= SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI SABERI SKOI R1,R2 kraj manje R1,R2,R1 nzd R2,R1,R2 nzd R1,0,R0 R15 y

vee manje kraj

Ako su za celobrojne promenljive x, lokacije:x y z NAPUNI NAPUNI ZAUZMI 09 03 01

i

z

zauzete i inicijalizovane memorijske

tada asemblerske naredbe:SABERI SABERI POZOVI SABERI 0C,0,R1 0A,0,R2 nzd R0,0,z

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

47

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 R1 i R2 se smeste argumenti pre odlaska na izvravanje potprograma, a nakon povratka iz potprograma sadraj registra R0 (povratna vrednost) se smesti u promenljivu z. Slino, asemblerske naredbe:SABERI SABERI POZOVI SABERI x,0,R1 y,0,R2 nzd R0,0,z

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 R1 koristi za smetanje vrednosti prvog ulaznog parametra, registar R2 za smetanje vrednosti drugog ulaznog parametra, a registar R3 za smetanje adrese treeg ulazno-izlaznog parametra, asemblerski ekvivalent opisa procedure nzd izgleda:nzd UPOREDI SKOI_ZA_= SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI SABERI SKOI R1,R2 kraj manje R1,R2,R1 nzd R2,R1,R2 nzd R1,0,[R3] R15 y

vee manje kraj

Ako su za celobrojne promenljive x, lokacije:x y z NAPUNI NAPUNI ZAUZMI 09 03 01

i

z

zauzete i inicijalizovane memorijske

tada asemblerske naredbe:SABERI SABERI SABERI POZOVI 0C,0,R1 0A,0,R2 #z,0,R3 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 R1 i R2 se

48

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

smeste vrednosti iji najvei zajedniki delilac se rauna, a u registar R3 se smesti adresa memorijske lokacije, namenjene za prihvatanje izraunatog najveeg zajednikog delioca. Slino, asemblerske naredbe:SABERI SABERI SABERI POZOVI x,0,R1 y,0,R2 #z,0,R3 nzd

opisuju poziv asemblerskog ekvivalenta procedure nzd, u kome se izrauna najvei zajedniki delilac vrednosti promenljivih x i y i dodeli ulazno-izlaznoj promenljivoj z.

3.6 MAKROKorienje 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 NAPUNI NAPUNI ZAUZMI ... UPOREDI SKOI_ZA_= SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI SABERI SKOI ... SABERI SABERI SABERI POZOVI 09 03 01 R1,R2 kraj manje R1,R2,R1 nzd R2,R1,R2 nzd R1,0,[R3] R15 x,0,R1 y,0,R2 #z,0,R3 nzd

vee manje kraj

Ako bi poziv potprograma bio zamenjen modifikovanim opisom potprograma, tada bi prethodnoj sekvenci asemblerskog programa odgovarala sledea sekvenca:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

49

x y z nzd

vee manje kraj

NAPUNI NAPUNI ZAUZMI ... UPOREDI SKOI_ZA_= SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI SABERI

09 03 01 x,y kraj manje x,y,x nzd y,x,y nzd x,0,z

(posledice izvravanja prethodne dve sekvence asemblerskog programa nisu identine, jer poslednja sekvenca, za razliku od prve, menja vrednosti promenljivih x i y). Iz prethodnih primera sledi da se, po svakom pozivu, izvri 5 naredbi manje u pristupu u kome modifikovani 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, u tabeli sa slike 3.6.1. broj naredbi kada istovremeno postoje i opis i poziv potprograma 13 17 21 broj naredbi kada modifikovani opis zamenjuje poziv potprograma 8 16 24

broj poziva 1 2 3

Slika 3.6.1 Zavisnost broja naredbi od broja poziva asemblerskog ekvivalenta potprograma nzd Znai, sa stanovita duine programa, u posmatranim sluajevima sa slike 3.6.1 je bolje zamenjivati poziv potprograma modifikovaim opisom potprograma, ako se potprogram poziva manje od tri puta. Dobre osobine pristupa u kome pozivi dovode do izvravanja opisa potprograma se mogu kombinovati sa dobrim osobinama pristupa u kome modifikovani opisi potprograma zamenjuju njegove pozive. To se postie, ako svaki poziv potprograma automatski bude zamenjen njegovim modifikovanim opisom, u kome su parametri zamenjeni argumentima. Ovakvi pozivi potprograma se nazivaju veliki, odnosno makro (macro) pozivi, jer ih zamenjuju modifikovane naredbe, sadrane u opisima potprograma koji se nazivaju makro definicije. Zamenu ili supstituciju makro poziva modifikovanim naredbama iz makro definicije obavlja poseban program koji se naziva makro pretprocesor (macro

50

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

preprocessor). On procesira (obrauje) programski tekst pre asemblera i tako, pravei tekstualne izmene, priprema tekst asemblerskog programa za asembliranje (slika 3.6.2).

Asemblerski program sa makro definicijama i makro pozivima

MAKRO PRETPROCESOR

Asemblerski program

Slika 3.6.2 Uloga makro pretprocesora U toku izmena programskog, teksta zameni makro poziva naredbama iz makro definicija obavezno 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). Prema tome, makro definicije mogu sadrati i direktive, koje zamenjuju odgovarajue makro pozive. Makro je bolje koristiti od potprograma, ako se potprogram poziva samo jednom, odnosno uvek kada primena makroa nudi krae programe. 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|_}

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

51

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

Parametar je obavezno jedinstven u makro definiciji. Obrazovanje makro argumenata opisuje pravilo:argument > heksadecimalni_broj[(+|-|*|/)(heksadecimalni_broj|parametar)] |parametar[(+|-|*|/)(heksadecimalni_broj|parametar)] |direktni_operand |registarski_operand |indirektni_operand |indeksni_operand

Neophodno je da argument bude usaglaen sa ulogom parametra koga zamenjuje. Kada se kao argument pojavi celobrojni izraz, ija oba operanda su heksadecimalni 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|naredba|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). Makro omoguuje uvoenje sinonima pojedinih naredbi, koji poveavaju itljivost (razumljivost) asemblerskih programa. Na primer, makro definicija:

52PREBACI

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)MAKRO SABERI KRAJ ulaz,izlaz ulaz,0,izlaz

uvodi sinonim za naredbu Tako makro poziv:PREBACI

SABERI,

koji odgovara posebnom sluaju njene primene.

R1,R2

zamenjuje naredba:SABERI R1,0,R2

Drugi koristan sinonim za naredbu SABERI, uvodi makro definicija:ANULIRAJ MAKRO SABERI KRAJ lokacija 0,0,lokacija

Tako makro poziv:ANULIRAJ R5

zamenjuje naredba:SABERI 0,0,R5

Makro definicija:NATRAG MAKRO SKOI KRAJ

R15

uvodi sinonim za naredbu SKOI, koji opisuje povratak iz potprograma. Tako makro poziv:NATRAG

zamenjuje naredba:SKOI R15

Makro definicija:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

53

NZD nzd

vee manje kraj

MAKRO UPOREDI SKOI_ZA_= SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI PREBACI KRAJ

a,b,c a,b kraj manje a,b,a nzd b,a,b nzd a,c

opisuje raunanje najveeg zajednikog delioca. Makro poziv:NZD R1,R2,R3

zamenjuju naredbe:nzd UPOREDI SKOI_ZA_= SKOI_ZA_< ODUZMI SKOI ODUZMI SKOI SABERI R1,R2 kraj manje R1,R2,R1 nzd R2,R1,R2 nzd R1,0,R3

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. 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:DVOSTRUKO NAZIV MAKRO MAKRO OPERACIJA1 OPERACIJA2 KRAJ KRAJ NAZIV,OPERACIJA1,OPERACIJA2 gornji1,donji1,gornji2,donji2,gornji3,donji3 donji1,donji2,donji3 gornji1,gornji2,gornji3

(prethodna makro definicija zanemaruje izlazak van opsega). Makro poziv:

54

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)DVOSTRUKO SABERI_2,SABERI,SABERI_P

zamenjuje makro definicija:SABERI_2 MAKRO SABERI SABERI_P KRAJ gornji1,donji1,gornji2,donji2,gornji3,donji3 donji1,donji2,donji3 gornji1,gornji2,gornji3

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 gornji1,donji1,gornji2,donji2,gornji3,donji3 donji1,donji2,donji3 gornji1,gornji2,gornji3

koja opisuje oduzimanje u dvostrukoj preciznosti. 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. Obrazovanje uslova uslovne direktive opisuje pravilo:uslov > (heksadecimalni_broj|parametar) (=||>|=| 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:

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

55

telo -> {direktiva |naredba |upravljaka_naredba |makro_definicija |makro_poziv |uslovna_direktiva }

Pomou uslovne direktive je mogue, na primer, opisati obrazovanje tabele, iji prvi element sadri vrednost 0, a naredni elementi 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 USLOVNO NAPUNI KRAJ KRAJ stepen stepen > 0 stepen/02 stepen stepen = 0 stepen

Makro poziv:stepeni TABELA 08

zamenjuju direktive:stepeni NAPUNI NAPUNI NAPUNI NAPUNI NAPUNI 0 01 02 04 08

3.7 STEKU naredbi POZOVI je predvieno uvanje samo jedne povratne adrese (jer samo toliko prostora ima u registru R15), pa zato ova naredba direktno ne podrava poziv potprograma iz potprograma, ili rekurzivne pozive potprograma, kada se 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, a kao poslednja povratna adresa koja je prva nastala, jer se prvi zavrava poslednje pozvani potprogram. 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. Uz

56

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

pretpostavku da su adrese memorijskih lokacija iz ovog niza uzastopne i rastue, tada memorijska lokacija sa poetka niza ima najmanju, a memorijska lokacija sa kraja niza najveu adresu. 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). Na slici 3.7.1 je prikazan izgled steka. nie adrese prazan deo steka popunjeni deo steka vie adrese vrh steka 12 11 -> 8 P46,P40,P37, P65 P48,P40,P37 P65 P49,P38,P37 P65 P51 P65 P59,P39 1

01 02 03 04 05

Slika 4.8.2 Mainski oblik mikro-programa dobavljanja Mainski oblik mikro-programa izvravanja 1. vrste sadri slika 4.8.3.heksadecimalna adresa i binarni sadraj lokacije mikro-programske memorije 4 3 2 1 0 09876543210987654321098765432 1098 76543210 00000000000000000000000001001 0010 00000111 00000000110010000000000001010 0010 00001000 00000010000000000100000000000 1000 00001001 00000100000100001000000000000 1000 00001010 00001000010000001000000000000 1000 00001011 00010000000000000000000000000 1000 00001100 01000000000000000010000000000 1000 00001101 10000000001000000000000001100 0010 00000001 znaenje jedininih bita sadraja lokacije biti biti 40 -> 12 11 -> 8 P63,P60 2 P45,P44,P41,P63,P61 2 P47,P36 P65 P48,P42,P37 P65 P49,P44,P37 P65 P50/P51/.../P54 P65 P58,P35 P65 P59,P43,P63,P62 2

06 07 08 09 0A 0B 0C 0D

Slika 4.8.3 Mainski oblik mikro-programa izvravanja 1. vrste Mainski oblik mikro-programa izvravanja 2. vrste sadri slika 4.8.4.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)heksadecimalna adresa i binarni sadraj lokacije mikro-programske memorije 4 3 2 1 0 09876543210987654321098765432 1098 76543210 00000000000000000000000001001 0010 00001111 00000010000000000100000000000 1000 00010000 00000100010000001000000000000 1000 00010001 00010000000000000000000000000 1000 00010010 01000000000000000010000000000 1000 00010011 10000000001000000000000001010 0010 00000001

93

0E 0F 10 11 12 13

znaenje jedininih bita sadraja lokacije biti biti 40 -> 12 11 -> 8 P63,P60 2 P47,P36 P65 P48,P44,P37 P65 P55/P56/P57 P65 P58,P35 P65 P59,P43,P63,P61 2

Slika 4.8.4 Mainski oblik mikro-programa izvravanja 2. vrste Mainski oblik mikro-programa izvravanja 3. vrste sadri slika 4.8.5.heksadecimalna adresa i binarni sadraj lokacije mikro-programske memorije 4 3 2 1 0 09876543210987654321098765432 1098 76543210 00000000000000000000000001001 0010 00010101 00000000110010000000000001010 0010 00010110 00000010000000000100000000000 1000 00010111 00000100000100001000000000000 1000 00011000 00001000010000001000000000000 1000 00011001 00010000000000000000000000000 1000 00011010 01000000000000000010000000000 1000 00000001 znaenje jedininih bita sadraja lokacije biti biti 40 -> 12 11 -> 8 P63,P60 2 P45,P44,P41,P63,P61 2 P47,P36 P65 P48,P42,P37 P65 P49,P44,P37 P65 P52 P65 P58,P35 P65

14 15 16 17 18 19 1A

Slika 4.8.5 Mainski oblik mikro-programa izvravanja 3. vrste Mainski oblik mikro-programa izvravanja 4. i 5. vrste sadri slika 4.8.6 (razlikovanje bezuslovnih i uslovnih upravljakih naredbi omoguuju funkcije prekidaa P64 i P65).heksadecimalna adresa i binarni sadraj znaenje jedininih bita lokacije mikro-programske memorije sadraja lokacije 4 3 2 1 0 biti biti 09876543210987654321098765432 1098 76543210 40 -> 12 11 -> 8 1B 00000000000000000000000001001 0010 00011100 P63,P60 2 1C 00000000110000100000000000000 1000 00000001 P45,P44,P39 P65

Slika 4.8.6 Mainski oblik mikro-programa izvravanja 4. i 5. vrste Mainski oblik mikro-programa izvravanja 6. vrste sadri slika 4.8.7.

94

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)heksadecimalna adresa i binarni sadraj lokacije mikro-programske memorije 4 3 2 1 0 09876543210987654321098765432 1098 76543210 00000000000000000000000001001 0010 00011110 00000000110010000000000000000 1000 00011111 00000000101001000000000000000 1000 00100000 00000000100100100000000000000 1000 00100001 00000000000000000000000001010 0010 00000001 znaenje jedininih bita sadraja lokacije biti biti 40 -> 12 11 -> 8 P63,P60 2 P45,P44,P41 P65 P45,P40,P43 P65 P45,P42,P39 P65 P63,P61 2

1D 1E 1F 20 21

Slika 4.8.7 Mainski oblik mikro-programa izvravanja 6. vrste

4.9 MAINSKI OBLICI MIKRO-POTPROGRAMAMainski oblik mikro-potprograma neposrednog operanda sadri slika 4.9.1.heksadecimalna adresa i binarni sadraj lokacije mikro-programske memorije 4 3 2 1 0 09876543210987654321098765432 1098 76543210 00000000001001001000000100000 1000 00100011 00000100000001001000000000000 1000 00100100 00001000000000011000000000000 1000 00100101 00100000000000000000000000000 1000 00100110 10000000000000100000000000000 0100 00000001 znaenje jedininih bita sadraja lokacije biti biti 40 -> 12 11 -> 8 P43,P40,P37, P65 P48,P40,P37 P65 P49,P38,P37 P65 P51 P65 P59,P39 P64/P65

22 23 24 25 26

Slika 4.9.1 Mainski oblik mikro-potprograma neposrednog operanda Mainski oblik mikro-potprograma direktnog ulaznog operanda sadri slika 4.9.2.heksadecimalna adresa i binarni sadraj lokacije mikro-programske memorije 4 3 2 1 0 09876543210987654321098765432 1098 76543210 00000000000001001000001100000 1000 00101000 00000100000001001000000000000 1000 00101001 00001000000000011000000000000 1000 00101010 00100000000000000000000000000 1000 00101011 10000000000000100000000000000 1000 00101100 00000000001000000000010100000 0100 00000001 znaenje jedininih bita sadraja lokacije biti biti 40 -> 12 11 -> 8 P40,P37,P1, P65 P48,P40,P37 P65 P49,P38,P37 P65 P51 P65 P59,P39 P65 P43,P2, P64/P65

27 28 29 2A 2B 2C

Slika 4.9.2 Mainski oblik mikro-potprograma direktnog ulaznog operanda Mainski oblik mikro-potprograma direktnog izlaznog operanda sadri slika 4.9.3.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)heksadecimalna adresa i binarni sadraj lokacije mikro-programske memorije 4 3 2 1 0 09876543210987654321098765432 1098 76543210 00000000000001001000001100000 1000 00101110 00000100000001001000000000000 1000 00101111 00001000000000011000000000000 1000 00110000 00100000000000000000000000000 1000 00110001 10000000000000100000000000000 1000 00110010 00000000110000000000010010000 0100 00000000

95

2D 2E 2F 30 31 32

znaenje jedininih bita sadraja lokacije biti biti 40 -> 12 11 -> 8 P40,P37,P1, P65 P48,P40,P37 P65 P49,P38,P37 P65 P51 P65 P59,P39 P65 P45,P44,P2,P P64

Slika 4.9.3 Mainski oblik mikro-potprograma direktnog izlaznog operanda Mainski oblik mikro-potprograma registarskog ulaznog operanda sadri slika 4.9.4 (RX = 2X+4).heksadecimalna adresa i binarni sadraj znaenje jedininih bita lokacije mikro-programske memorije sadraja lokacije 4 3 2 1 0 biti biti 09876543210987654321098765432 1098 76543210 40 -> 12 11 -> 8 33 000000001010000010010000000000 1000 0000001 P45,P43,P37,PRX P64/P65

Slika 4.9.4 Mainski oblik mikro-potprograma registarskog ulaznog operanda Mainski oblik mikro-potprograma registarskog izlaznog operanda sadri 4.9.5 (RX = 2X+3). slika

heksadecimalna adresa i binarni sadraj znaenje jedininih bita lokacije mikro-programske memorije sadraja lokacije 4 3 2 1 0 biti biti 09876543210987654321098765432 1098 76543210 40 -> 12 11 -> 8 34 00000000110000000000100000000 0100 00000000 P45,P44,PRX P64

Slika 4.9.5 Mainski oblik mikro-potprograma registarskog izlaznog operanda Mainski oblik mikro-potprograma indirektnog ulaznog operanda sadri slika 4.9.6 (RX = 2X+4).heksadecimalna adresa i binarni sadraj znaenje jedininih bita lokacije mikro-programske memorije sadraja lokacije 4 3 2 1 0 biti biti 09876543210987654321098765432 1098 76543210 40 -> 12 11 -> 8 35 00000000001000000001000100000 0100 00000001 P43,PRX, P64/P65

Slika 4.9.6 Mainski oblik mikro-potprograma indirektnog ulaznog operanda Mainski oblik mikro-potprograma indirektnog izlaznog operanda sadri slika 4.9.7 (RX = 2X+4).

96

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

heksadecimalna adresa i binarni sadraj znaenje jedininih bita lokacije mikro-programske memorije sadraja lokacije 4 3 2 1 0 biti biti 09876543210987654321098765432 1098 76543210 40 -> 12 11 -> 8 36 00000000110000000001000010000 0100 00000000 P45,P44,PRX,P P64

Slika 4.9.7 Mainski oblik mikro-potprograma indirektnog izlaznog operanda Mainski oblik mikro-potprograma indeksnog ulaznog operanda sadri slika 4.9.8 (RX = 2X+4).heksadecimalna adresa i binarni sadraj lokacije mikro-programske memorije 4 3 2 1 0 09876543210987654321098765432 1098 76543210 00000000000001001000001100000 1000 00111000 00000100000001001000000000000 1000 00111001 00001000000000011000000000000 1000 00111010 00100000000000000000000000000 1000 00111011 10000000000000100000000000000 1000 00111100 00000100000000000000010000000 1000 00111101 00001000000000000001000000000 1000 00111110 00100000000000000000000000000 1000 00111111 10000000000000000000001000000 1000 01000000 00000000001000000000010100000 0100 00000001 znaenje jedininih bita sadraja lokacije biti biti 40 -> 12 11 -> 8 P40,P37,P1, P65 P48,P40,P37 P65 P49,P38,P37 P65 P51 P65 P59,P39 P65 P48,P2 P65 P49,PRX P65 P51 P65 P59,P1 P65 P43,P2, P64/P65

37 38 39 3A 3B 3C 3D 3E 3F 40

Slika 4.9.8 Mainski oblik mikro-potprograma indeksnog ulaznog operanda Mainski oblik mikro-potprograma indeksnog izlaznog operanda sadri slika 4.9.9 (RX = 2X+4).heksadecimalna adresa i binarni sadraj lokacije mikro-programske memorije 4 3 2 1 0 09876543210987654321098765432 1098 76543210 00000000000001001000001100000 1000 01000010 00000100000001001000000000000 1000 01000011 00001000000000011000000000000 1000 01000100 00100000000000000000000000000 1000 01000101 10000000000000100000000000000 1000 01000110 00000100000000000000010000000 1000 01000111 00001000000000000001000000000 1000 01001000 00100000000000000000000000000 1000 01001001 10000000000000000000001000000 1000 01001010 00000000110000000000010010000 0100 00000000 znaenje jedininih bita sadraja lokacije biti biti 40 -> 12 11 -> 8 P40,P37,P1, P65 P48,P40,P37 P65 P49,P38,P37 P65 P51 P65 P59,P39 P65 P48,P2 P65 P49,PRX P65 P51 P65 P59,P1 P65 P45,P44,P2,P P64

41 42 43 44 45 46 47 48 49 4A

Slika 4.9.9 Mainski oblik mikro-potprograma indeksnog izlaznog operanda

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

97

4.10 SADRAJI ADRESNIH MEMORIJA MIKRO-PROGRAMA I MIKRO-POTPROGRAMAAdresna memorija mikro-programa ima vie lokacija od broja vrsta naredbi. U lokacijama koje odgovaraju pojedinim vrstama naredbi, nalaze se ulazne adrese odgovarajuih mikro-programa. U preostalim lokacijama je zgodno da se nalazi ulazna adresa posebnog mikro-programa oporavka. Njegov zadatak je da zapone novu fazu dobavljanja i tako omogui oporavak od greaka u izvravanju, koje su posledica pojave kodova nepostojeih vrsta naredbi. Mainski oblik mikroprograma oporavka sadri slika 4.10.1.heksadecimalna adresa i binarni sadraj lokacije mikro-programske memorije 4 3 2 1 0 09876543210987654321098765432 1098 76543210 4B 00000000000000000000000000000 1000 00000001 znaenje jedininih bita sadraja lokacije biti biti 40 -> 12 11 -> 8 P65

Slika 4.10.1 Mainski oblik mikro-programa oporavka Sadraj lokacija adresne memorije mikro-programa je prikazan na slici 4.10.2.adresna heksadec. heksadec. adresa sadraj lokacije lokacije 0 06 1 0E 2 14 3 1B 4 1B 5 1D od 6 do F 4B memorija mikro-programa prikazani sadraj lokacije predstavlja ulaznu adresu: mikro-programa mikro-programa mikro-programa mikro-programa mikro-programa mikro-programa mikro-programa izvravanja izvravanja izvravanja izvravanja izvravanja izvravanja oporavka 1. 2. 3. 4. 5. 6. vrste vrste vrste vrste vrste vrste

Slika 4.10.2 Sadraj lokacija adresne memorije mikro-programa Adresna memorija mikro-potprograma ima vie lokacija od broja vrsta operanada. U lokacijama, koje odgovaraju pojedinim vrstama operanada, nalaze se ulazne adrese odgovarajuih mikro-potprograma. U preostalim lokacijama je zgodno da se nalazi ulazna adresa posebnog mikro-potprograma oporavka. Njegov zadatak je da zapone novu fazu dobavljanja i tako omogui oporavak od greaka u izvravanju, koje su posledica pojave kodova nepostojeih vrsta operanada. Mikro-potprogram oporavka se ne razlikuje od istoimenog mikroprograma. Sadraj lokacija adresne memorije mikro-potprograma je prikazan na slici 4.10.3.

98

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

adresna memorija mikro-potprograma heksadec. heksadec. prikazani sadraj lokacije adresa sadraj predstavlja ulaznu adresu: lokacije lokacije 0 22 mikro-potprograma neposrednog operanda 1 27 mikro-potprograma direktnog ulaznog operanda 2 2D mikro-potprograma direktnog izlaznog operanda 3 33 mikro-potprograma registarskog ulaznog operanda 4 34 mikro-potprograma registarskog izlaznog operanda 5 35 mikro-potprograma indirektnog ulaznog operanda 6 36 mikro-potprograma indirektnog izlaznog operanda 7 37 mikro-potprograma indeksnog ulaznog operanda 8 41 mikro-potprograma indeksnog izlaznog operanda od 9 do F 4B mikro-programa oporavka

Slika 4.10.3 Sadraj lokacija adresne memorije mikro-potprograma

4.11 RAZMATRANJE RADA PROCESORA KONCEPTPre poetka rada procesora KONCEPT, sadraj inicijalnog registra se prebaci u registar sekvence, zahvaljujui zatvaranju prekidaa P66 (slika 4.11.1).R T priprema dobavljanja jedine mikro-naredbe inicijalnog mikro-programa

dobavljanje jedine mikro-naredbe inicijalnog mikro-programa

izvravanje jedine mikro-naredbe inicijalnog mikro-programa i priprema dobavljanja prve mikro-naredbe mikro-programa dobavljanja

dobavljanje prve mikro-naredbe mikro-programa dobavljanja

Slika 4.11.1 Vremenski dijagram rada procsora KONCEPT Poetni sadraj registra sekvence dovodi do punjenja upravljakog registra sadrajem prve lokacije mikro-programske memorije (sa adresom 00 16). Na taj nain, u upravljaki registar dospe mainski oblik jedine mikro-naredbe inicijalnog mikro-programa, ije izvravanje dovodi do smetanja sadraja prve memorijske lokacije (sa adresom 0000000016) u programski broja. Nakon toga, u upravljaki registar se smesti sadraj druge lokacije mikro-programske memorije (sa adresom 0116). Time se za izvravanje spremi prva mikro-naredba mikro-programa dobavljanja. Prvo izvravanje ovog mikro-programa dovodi do prebacivanja u

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

99

registar naredbe sadraja memorijske lokacije iju adresu sadri programski broja. Ako ova memorijska lokacija sadri, na primer, obaveznu re naredbe:SABERI 01,0,R0

(ija mainska predstava zauzima tri uzastopne memorijske lokacije, jer obuhvata obaveznu i dve dodatne rei: 0000004016 0000000116 0000000016), tada iza izvravanja poslednje mikro-naredbe mikro-programa dobavljanja sledi izvravanje mikro-programa izvravanja naredbi 1. vrste (sa ulaznom adresom 06 16). Nakon izvravanja prve mikro-naredbe ovog mikro-programa, sledi izvravanje prve mikro-naredbe mikro-potprograma neposrednog operanda (sa adresom 22 16). Po izvravanju poslednje mikro-naredbe ovog mikro-potprograma, sledi izvravanje druge mikro-naredbe mikro-programa izvravanja naredbi 1. vrste (sa adresom 0716). Nakon njenog izvravanja, sledi opet izvravanje prve mikro-naredbe mikropotprograma neposrednog operanda (sa adresom 2216). Po izvravanju poslednje mikro-naredbe ovog mikro-potprograma, sledi izvravanje tree mikro-naredbe mikro-programa izvravanja naredbi 1. vrste (sa adresom 0816). Iza izvravanja poslednje mikro-naredbe ovog mikro-programa (sa adresom 0D 16), sledi izvravanje prve mikro-naredbe mikro-potprograma registarskog izlaznog operanda (sa adresom 3416). Nakon izvravanja jedine mikro-naredbe ovog mikro-potprograma, sledi opet izvravanje prve mikro-naredbe mikro-programa faze dobavljanja (sa adresom 0116).

4.12 PITANJA1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ta je cilj dekodiranja adrese? Koje linije ulaze u memoriju? ta se nalazi u obaveznoj rei? ta se nalazi u dodatnoj rei (objasniti na primeru)? Koji naini adresiranja zahtevaju dodatnu re (objasniti na primeru)? Kakvu ulogu ima registar naredbi? Kakvu ulogu ima programski broja? Kakvu ulogu ima registar adrese? Kakvu ulogu imaju registar 1. i 2. operanda? Koji registri posebne namene postoje u aritmetiko-logikoj jedinici? Kakvu ulogu imaju sklopovi aritmetiko-logike jedinice? Od kojih faza se sastoji period aktivnosti procesora? ta je mikro-naredba? ta je mikro-program? Koje vrste mikro-programa postoje? Kakva je namena mikro-potprograma? ta se deava u procesoru tokom izvravanja pojedinih mikro-programa i mikro-potprograma (objasniti na primeru)?

100

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.

Koju ulogu ima inicijalni mikro-program? Od ega zavisi duina procesorskog ciklusa? ta se nalazi u upravljakom registru? Kakvu ulogu ima logika promenljiva T? ta odreuje veliinu i broj lokacija mikro-programske memorije? Kako se odreuje redosled izvravanja mikro-naredbi? ta odreuje poetak aktivnosti procesora? Zato su uvedene adresne memorije mikro-programa i mikropotprograma? Koji registri posebne namene postoje u upravljakoj jedinici? ta sadri registar sekvence? Kada je zatvoren prekida P66? Kada logike promenljive 1, 2 i 3 imaju vrednost 1? Kada se zatvaraju prekidai P64 i P65? Odakle stiu adrese u mikro-programsku memoriju? Za koje prekidae je vezano dekodiranje rednog broja registra? Za koje prekidae je vezano dekodiranje koda naredbe? ta sadri mikro-programska memorija (objasniti na primeru)? ta se desi u sluaju pojave nedefinisanog koda naredbe ili nedefinisanog koda operanda? Kako zapoinje aktivnost procesora (objasniti na primeru)?

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

101

5. RAUNAR KONCEPT5.1 ORGANIZACIJA RAUNARA KONCEPTSlika 5.1.1 prikazuje raunar, sastavljen od procesora i memorije.adresne linije linije podataka P

PROCESOR

32 32

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 neophodne su mehanike sklopke, a za prikazivanje nivoa signala potrebne su svetlosne diode (slika 5.1.2).adresne linije linije podataka LED P

PROCESOR

32 32

MEMORIJA

S1 S2 S3 S4 32 32 1 32

1 1

...

Slika 5.1.2. Organizacija raunara KONCEPT

102

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Oznaka S1 se odnosi na 66 meusobno povezanih mehanikih sklopki, koje imaju 2 poloaja i sve se uvek nalaze u istom poloaju. Zatvaranje ovih sklopki 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 sklopki zapoinje rad procesora. Oznaka S2 se odnosi na mehaniku sklopku sa 3 poloaja (levo, neutralno, desno), koja omoguuje uticanje na nivoe signala u upravljakim linijama P i . Postavljanje ove sklopke u desni poloaj dovodi na nivo 1 signal u liniji P, a postavljanje ove sklopke u levi poloaj dovodi na nivo 1 signal u liniji . Oznaka S3 se odnosi na 32 meusobno nezavisne mehanike sklopke, svaka sa po 2 poloaja, koje omoguuju uticanje na nivoe pojedinih signala u adresnim linijama. Zatvaranje svake od ovih sklopki dovodi na nivo 1 signal u korespondentnoj adresnoj liniji. Oznaka S4 se odnosi na 32 meusobno nezavisne mehanike sklopke, svaka sa po 2 poloaja, koje omoguuju uticanje na nivoe pojedinih signala u linijama podataka. Zatvaranje svake od ovih sklopki dovodi na nivo 1 signal u korespondentnoj liniji podataka. Oznaka LED se odnosi na 32 meusobno nezavisne svetlosne diode, 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. Mehanike sklopke i svetlosne diode se nalaze na upravljakoj tabli (slika 5.1.3).raunar ne radi raunar radi procesor ne radi (R) S1 adresne sklopke 0 S31 1 S431 LED podataka L31 sklopke podataka 0 S41 1 0 S40 1 procesor radi (R) neutralno S2 0 S30 1 1 P

S0 0 S331 0 1

...

...

...

L1

L0

Slika 5.1.3. Upravljaka tabla raunara KONCEPT

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

103

Upravljaka tabla sadri i sklopku S0, sa 2 poloaja. Kada je u desnom poloaja, ova sklopka omoguuje rad raunara, jer tada dovodi napajanje do njegovih sklopova. Ako je ova sklopka u suprotnom poloaju, tada raunar ne radi, jer su njegovi sklopovi bez napajanja. Za sklopke S3 i S4 se podrazumeva da dovode signal na nivo 1 kada su u desnom poloaju. Indeks uz oznake ovih sklopki, kao i uz oznake svetlosnih dioda (L), pokazuje za koju od linija su vezane odgovarajue sklopke, odnosno svetlosne diode. Pisanje memorijske lokacije zapoinje dovoenjem sklopke S2 u neutralni poloaj, a sklopke S1 u levi poloaj. Zatim se sklopke S3 i S4 postavljaju u poloaje odreene adresom pomenute memorijske lokacije i njenim novim sadrajem. Kada se svaka od sklopki S3 i S4 dovede u eljeni poloaj, sklopka S2 se dovodi u desni poloaj i time se izmeni sadraj pomenute memorijske lokacije. itanje memorijske lokacije zapoinje dovoenjem sklopke S2 u neutralni poloaj, a sklopke S1 u levi poloaj. Zatim se sklopke S3 postavljaju u poloaje odreene adresom pomenute memorijske lokacije. Kada se svaka od sklopki S3 dovede u eljeni poloaj, sklopka S2 se dovodi u levi poloaj. Dok se ona nalazi u levom poloaju, svetlosne diode odraavaju sadraj pojedinih bita pomenute memorijske lokacije. Do izvravanja datog programa dolazi nakon prebacivanja sklopke S1 u desni poloaj, ako se, prethodno, u prvu memorijsku lokaciju (sa adresom 0000000016) 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, to znai da se u linijama podataka neprekidno ponavljaju iste kombinacije nivoa signala, odreene reima mainskog oblika ove naredbe).

5.2 ULAZNI I IZLAZNI UREAJI RAUNARA KONCEPTUpravljaka 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, ne koriste poloaji prekidaa, nego nizovi znakova. 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 heksadecimalni_broj,heksadecimalni_broj | razmak heksadecimalni_broj |I razmak heksadecimalni_broj

104

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Heksadecimalni 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 lokacije posebne memorije tastature i da pritisak na dirku zatvara prekida koji omoguuje itanje koda znaka iz odgovarajue lokacije memorije tastature (slika 5.2.1).memorija tastature kod znaka1 kod znaka2 dirka1 dirka2 memorija dirkan

...kod znakan

Slika 5.2.1 Organizacija 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

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

105

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).adresne linije linije podataka registar podataka tastatura 32 8 registar stanja

32

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).

106

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

memorija ekrana take matrice znaka 1 take matrice znaka 2

kod znakai izaziva zatvaranje prekidaai prekida1 prekida2 ekran prekidan

...take matrice znaka n

Slika 5.2.3 Organizacija ekrana Znakovne pozicije ekrana iz iste horizontale obrazuju liniju ekrana. Znak se uvek prikazuje u znakovnoj poziciji koja sadri poseban znak, nazvan kursor. 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. 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

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

107

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).adresne linije linije podataka P registar stanja registar podataka ekran 8

32 32

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 Upotrebljiva verzija raunara KONCEPT se sastoji od procesora, memorije, tastature i ekrana (slika 5.2.5).

108

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

PROCESOR

32 32

adresne linije linije podataka P

MEMORIJA

TASTATURA

TERMINAL

EKRAN

Slika 5.2.5 Organizacija raunara KONCEPT sa znakovnim ulazom i izlazom Na slici 5.2.5 kvadrati sa natpisima TASTATURA i EKRAN obuhvataju i kontrolere i fizike ureaje, okrenute korisniku. Poto se, sa stanovita procesora, registri podataka i registri stanja kontrolera ne razlikuju od obinih memorijskih lokacija, oni zamenjuju obine memorijske lokacije kojima po pravilu odgovaraju najvie adrese. Prema tome, za toliko lokacija se smanjuje ukupan broj obinih memorijskih lokacija. 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 desno, jedan po jedan znak komande. Za unesene znakove je vano da se prikau na ekranu, da bi korisnik mogao da uoi eventualno pogreno unesen znak. Ispravljanje pogreno unesenih znakova se zasniva na njihovom ponitavanju. Znakovi se ponitavaju jedan po jedan, s desna u levo. Znai, prvi se ponitava poslednje unesen znak. Ponitavanju znakova je posveena posebna dirka tastature. Pritisak na ovu dirku (za ponitavanje) generie kod odgovarajueg upravljakog znaka ponitavanja (delete). 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.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

109

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 prve komande P), ili do prikazivanja na ekranu, u heksadecimalnom obliku, sadraja navedene memorijske lokacije (u sluaju druge komande ), ili do pokretanja izvravanja korisnikog programa (u sluaju tree 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. Pritisak na ovu dirku (za kraj unosa) generie kod odgovarajueg upravljakog znaka kraja unosa (enter). 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(;;) { prikai prompt; prevedi interpreter u stanje sa grekom; preuzmi komandu; if (prvi znak komande je P) if (sledi heksadecimalni broj) if (sledi zarez) 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; }; };

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 se prevode iz znakovnog u interni oblik. Obrnuto se deava kod prikazivanja (u heksadecimalnom obliku) sadraja memorijskih lokacija.

110

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

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 (koje sadre 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, oni 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 UPOREDI SKOI_ZA_= PREBACI registar_stanja_tastature,0 ekaj_tastaturu registar_podataka_tastature,R0

Podrazumeva se da je registar_stanja_tastature labela registra stanja tastature, da je registar_podataka_tastature labela registra podataka tastature i da je preuzeti znak, odnosno njegov kod, smeten u registar R0. Eho preuzetog znaka u okviru ulazne operacije opisuje sledea asemblerska sekvenca:ekaj_ekran UPOREDI SKOI_ZA_= PREBACI registar_stanja_ekrana,0 ekaj_ekran R0,registar_podataka_ekrana

labela registra stanja ekrana, da je registra podataka ekrana i da se znak, odnosno kod znaka, iji eho se vri, nalazi u registru R0. 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.registar_stanja_ekrana registar_podataka_ekrana labela

Podrazumeva se da je

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

111

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. MONITOR Iz prethodno izloenog proizlazi da se, pored procesora, memorije i terminala, kao ravnopravni delovi raunara KONCEPT javljaju drajver terminala i interpreter komandi. Oni se zajedno nazivaju monitor. Monitor 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.6). interpreter komandi drajver terminala Slika 5.2.6 Slojevita struktura monitora U okviru monitora 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 monitora se nalaze preostali delovi raunara, na koje se monitor oslanja. Iznad monitora su korisniki programi koji se oslanjaju na monitor, jer pozivaju operacije drajvera terminala. Prethodno opisana organizacija monitora 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 monitor, sadri upravljaku tablu na kojoj su samo dve sklopke. Prva od njih je sklopka napajanja. Ona ima 2 stabilna poloaja. Kada je sklopka napajanja u jednom poloaju, raunar radi (njegovi sklopovi imaju napajanje), a kada se ona

112

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

nalazi u drugom poloaju, raunar ne radi (njegovi sklopovi nemaju napajanje). Druga sklopka omoguuje korisniku da pokrene rad procesora iz poetka (reset). Ona ima jedan stabilan poloaj (u kome logika promenljiva R sadri vrednost 1) i jedan nestabilan poloaj (u kome logika promenljiva R sadri vrednost 0). Dovoenje ove sklopke 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 monitor, kada korisniki program upadne u beskonanu petlju. Aktiviranje monitora znai da se pokrene izvravanje njegovog interpretera komandi, koji, posredstvom drajvera terminala, stupa u interakciju sa korisnikom. Za automatsko aktiviranje monitora neophodno je da prva memorijska lokacija (sa adresom 0000000016) sadri ulaznu adresu monitora. Takoe, neophodno je da su sadraj prve memorijske lokacije i sadraji memorijskih lokacija sa naredbama monitora nepromenljivi, odnosno da se sadraji ovih lokacija mogu samo itati.

5.3 VRSTE MEMORIJEZa smetanje naredbi monitora nisu zgodne obine memorijske lokacije, poto njihov sadraj moe biti izmenjen, a nehotine izmene njihovog sadraja mogu ugroziti funkcionalnost monitora, a to znai i upotrebljivost raunara KONCEPT. Za reavanje problema smetanja naredbi monitora 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 0000000016), kao i za memorijske lokacije, predviene za smetanje naredbi monitora. 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)

113

Slika 5.3.1 Principijelni izgled magnetnog diska Na magnetnom disku memorisani sadraji se nalaze u obliku magnetnih zapisa, rasporeenih u koncentrinim krunim stazama 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 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

114

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. Organizacija kontrolera diska je prikazana na slici 5.3.2.adresne linije registar podataka 8 linije podataka P 32 8 registar stanja disk

32

Slika 5.3.2 Organizacija kontrolera diska

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

115

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 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 broja 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 koji podravaju 2 operacije. Prva je ulazna operacija, namenjena za itanje sadraja bloka, a druga je izlazna operacija namenjena 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 heksadecimalni_broj,heksadecimalni_broj heksadecimalni_broj heksadecimalni_broj heksadecimalni_broj,heksadecimalni_broj heksadecimalni_broj,heksadecimalni_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 heksadecimalnih brojeva. Prvi od njih odgovara adresi bafera, a drugi rednom broju bloka koji uestvuje u prenosu.

116

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

Uvoenje prethodne dve komande zahteva proirenje interpretera komandi. Prema tome, u gornjem sloju monitora 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 monitora Nova verzija raunara KONCEPT sadri procesor, radnu memoriju, terminal, masovnu memoriju i monitor (slika 5.3.4).adresne linije linije podataka P

PROCESOR

32 32

RADNA MEMORIJA

TERMINAL

MASOVNA MEMORIJA (DISK)

Slika 5.3.4 Organizacija raunara KONCEPT sa radnom i masovnom memorijom Na slici 5.3.4 kvadrati sa natpisom terminal i masovna memorija obuhvataju 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 monitora.

Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)

117

5.4 OPERATIVNI SISTEMMonitor olakava korienje raunara, jer omoguuje znakovnu komunikaciju korisnika i raunara. Ali, korienje raunara na nivou monitora 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 monitora komplikovano, a to znai i neproduktivno. Za jednostavnije i produktivnije korienje raunara je neophodno da se korisnika panja ne skree na detalje koji su ne