Professional Documents
Culture Documents
VI Sem 1
VI Sem 1
Mikroraunar je sastavljen od etiri osnovna bloka (Sl.1) - to zovemo hardver: -mikroprocesora -memorije -ulaznog meusklopa -izlaznog meusklopa Programska podrka (to zovemo softver) je vezivna materija koja ta etiri bloka osmiljava i dri ih zajedno. Mikroprocesor sjedinjuje u sebi sposobnost raunskog dela i dela koji je sposoban da na temelju dobijenih rezultata donosi odluke-izabere jedan od alternativnih smerova daljnjeg delovanje ili akcije. U memoriji se smetaju podaci u binarnom obliku, meurezultati i rezultati. U memoriji su takoe smeteni programi koji odreuju mikroprocesoru koje operacije mora izvriti. Preko ulaznog meusklopa ostvaruje se put za prenos binarnih podataka (u paralelnom ili serijskom obliku) od ulaznih jedinica prema mikroprocesoru ili memoriji. Izlazni meusklop omoguava prenos binarnih podataka od mikroprocesora prema izlaznim jedinicama. Sastavni blokovi (mikroprocesor, ulaznoizlazni meusklopovi, memorija) su preko spoljne sabirnice povezani i ine mikroraunar (Sl.1.). Spoljna sabirnica je skup linija preko kojih se saobraa izmeu sastavnih delova mikroraunara.
Sl.2. prikazuje strukturu mikroraunara zasnovanog na porodici Motorola M6800,gde su: - MPU: mikroprocesor, - RAM, ROM: memorija sa direktnim pristupom, ispisna memorija, - START UP, CLOCK: pomoni sklopovi, - PIA: paralelni U/I meusklop, - ACIA; serijski meusklop. Spoljna sabirnica se sastoji od upravljake (CONTROL BUS) i adresne (ADRESS BUS) sabirnice i sabirnice podataka (DATA BUS).
Sl.3 prikazuje grau mikroraunara na osnovi mikroprocesora Intel 8080, a sastoji se od memorije RAM, ROM, U/I meusklopa i specijalne jedinice nazvane upravljaki sklop (system controller), generatora takta, kao pomonog sklopa. Spoljna sabirnica se sastoji od adresne sabirnice, sabirnice podataka i upravljake sabirnice. 2
MODEL MIKROPROCESORA
Mikroprocesor je osnovni sastavni blok mikroraunara. On je centralno procesorska jedinica realizovana u tehnologiji LSI. Sastoji se od sklopova koji dekodiraju instrukcije pribavljene iz memorije i u skladu s tim generu sekvence upravljakih signala (koji odreuju niz prenosa preko interne sabirnice, prenose kroz aritmetiko-logiku jedinicu, pobuivanje internih sklopova i sl.), potrebnih za izvoenje instrukcije. To je jedan od osnovnih zadataka upravljake jedinice. Mikroprocesorski ip sadri aritmetiko-logiku jedinicu (ALU). U njoj se izvode aritmetike i logike operacije na binarnim podacima. Registri za privremeno skladitenje i rukovanje podacima takoer su sastavni deo procesora LSI. Budui da veina standardnih mikroprocesora ima re duine osam bita (bajt), dat je opis njegovog rada na jednostavnom modelu 8-bitnog mikroprocesora. Duina rei od 8 bita onemoguava da se instrukcijska re razdeli na klasian nain kao kod raunara: na polje operacijskog koda, na polje naina adresiranja i na adresno polje (Sl.4). Samo polje operacijskog koda zauzelo bi vei deo 8-bitne rei. Na primer, 8-bitni mikroprocesor M-6800 ima osnovni skup od 72 instrukcije, to zahteva operacijski kod od 7 bita (27 > 72 > 26), ako privremeno zanemarimo 197 razliitih operacijskih kodova u zavisnosti od naina adresiranja.
Adresno polje bilo bi svedeno, u najboljem sluaju na jedan bit. To znai da bi bilo mogue direktno adresirati samo dve memorijske lokacije- to je oito premalo. Problem duine rei mora biti kod mikroprocesora reen pribavljanjem vie 8-bitnih rei za konstrukciju jedne instrukcijske rei. Zbog ega re mikroprocesora nije dua (npr. 24 ili 32 bita)? Veina razloga je u tehnolokim ogranienjima, na primer u broju izvoda na integrisanom kuitu DIP (sa izvodima u dve linije), problemu gustoe integracije komponenti, postojeoj opremi za testiranje i ispitivanje ipova u fazi proizvodnje i sl.. Jednostavni model na kojem e biti opisan princip rada prikazan je na Sl.5. Model mikroprocesora ima akumulator A koji koji se upotrebljava za privremeno skladitenje jednog od operanada. Akumulator uestvuje pri izvravanju aritmetikih i logikih opracija na podacima, te ima i sredinju ulogu u prenosu podataka unutar mikroraunara ili sklopa mikroraunara. Programsko brojilo (programski broja) - registar PC - sadri adresu sledeeg bajta koji e biti pribavljen u narednom ciklusu. Operacijski kod instrukcije upisuje se u instrukcijski registar - registar IR. U 16-bitnom brojilu podataka (registar podataka) registru DC, sadrana je adresa memorijske lokacije u kojoj se nalazi operand. Izvoenje svake instrukcije deli se na: - fazu pribavljanja instrukcije -PRIBAVI (fetch), - fazu izvravanje instrukcije -IZVRI (execute). Mikroprocesor za vreme faze PRIBAVI postavlja sadraj programskog brojila preko interne sabirnice na spoljnu adresnu sabirnicu. Ujedno alje i odgovarajue upravljake signale (signal ITAJ) na spoljnu upravljaku sabirnicu (u naem sluaju pojednostavljeni model ime samo dva upravljaka signala: ITAJ i PII). Memorijski sklop dekodira postavljenu adresu (prisutnu na adresnoj sabirnici) u cilju pristupa do odgovarajue memorijske rei. Za nekoliko stotina ns (npr. 500 ns) sadraj specificirane memorijske lokacije pojavie se na spoljnoj sabirnici podataka. Taj se sadraj skladiti u instrukcijskom registru IR, i to je operacijski kod instrukcije. Za vreme faze PRIBAVI mikroprocesor upotrebljava svoju internu logiku i poveava sadraj programskog brojila.
U fazi IZVRI upravljaka jedinica, u skladu s operacijskim kodom koji je skladiten u instrukcijskom registru, stvara niz upravljakih signala. Rezultat tog niza signala su odgovarajui prenosi podataka, odnosno operacije (npr. aktiviranje pojedinih sklopova unutar aritmetiko-logike jedinice, izvravanje (izvoenja) zadate instrukcije.) Operacije unutar mikroprocesora (esto se nazivaju mikrooperacijama) sinhronizovane su generatorom takta. Perioda generatora takta moe biti, u zavisnosti od tipa mikroprocesora, od 100 ns do nekoliko s. Signali generatora takta mogu se sastojati od jednog ili vie signala (to je onda viefazni generator takta, npr. mikroprocesor M6800 ima signale 1 i 2). Za pojednostavnjeni model izabran je jednofazni generator takta (Sl.6). je obino oznaka za signal generatora takta.
Na primeru jednostavnog programa sa Sl.7 prikazani su vremenski dijagram stanja na spoljnim sabirnicama i promene u sadrajima registara modela u cilju objanjenja rada mikroprocesora.
Napomena: Adrese i sadraji memorijski lokacija na Sl.7 prikazani u heksadekadnom sistemu. Poetni uslov (sadraj registara) prikazuje Sl.9. Na slici su oznaeni samo oni registri koji uestvuju u izvoenju programa. U programskom brojilu postavljena je adresa prve instrukcije.
Sl.10 prikazuje stanje nakon faze PRIBAVI: u instrukcijskom registru skladiten je operacijski kod instrucije, sadraj programskog brojila povean je za 1. Sadraj instrukcijskog registra 10110110 (B6-heksadekadno) dekodiran je kao: napuni akumulator A sadrajem memorijske lokacije koje je adresa sadrana u sledea dva bajta. Mikroprocesor pribavlja sledei bajt postavljanjem sadraja programskog brojila na adresnu sabirnicu i generiranjem upravljakog signala ITAJ. Pribavljeni bajt se smetava u brojilo podataka. Sl.11 prikazuje stanje nakon pribavljanja znaajnijeg bajta adrese operanda (02..); programsko je brojilo uveano za 1. Mikroprocesor pribavlja trei bajt instrukcijske rei-manje znaajni bajt adrese operanda (..01) i smeta ga u brojilo podataka; programsko brojilo uveava se za 1 i pokazuje na sledeu instrukciju 9B (Sl.7).
Sl.11. Stanje nakon pribavljanja znaajnijeg bajta adrese operanda: Drugi ciklus prve instrukcije
Sl.12 prikazuje stanje nakon pribavljanja manje znaajnog bajta adrese operanda.
Sl 12. Stanje nakon pribavljanja manje znaajnog bajta adrese operanda: Trei ciklus prve instrukcije
Ako se na trenutak pretpostavi da instrukcijski registar IR (0-7) i brojilo podataka DC (0-15) ine jedan 24-bitni registar, moe se instrukcijski registar smatrati poljem operacijskog koda, a brojilo podataka adresnim poljem (Sl.13).
Postupku pribavljanja kompletne instrukcijske rei mikroprocesora su bila tri ciklusa (3x1 bajt), dok bi raunar sa duinom rei od 24 bita taj isti postupak obavio u jednom ciklusu. Mikroprocesor pribavlja operand postavljanjem sadraja brojila podataka na adresnu sabirnicu i generisanjem upravljakog signala ITAJ. Sl.14 prikazuje konani rezultat izvoenja prve instrukcije: akumulator A napunjen je sadrajem memorijske lokacije 0201. Sadraj programskog brojila nije povean, jer je pribavljen operand a ne instrukcija - mikroprocesor je bio u fazi IZVRI.
Sl.14 Stanje nakon izvoenja prve instrukcije: etvrti ciklus prve instrukcije
Sl.15. prikazuje pojednostavnjeni vremenski dijagram izvoenja prve instrukcije. Instrukcija se izvodi u etiri ciklusa (periode) generatora takta . Nastavlja se dalje izvoenje programa. Sl.16 prikazuje stanje nakon pribavljanja prvog bajta druge insrukcijske rei. U instrukcijskom registru smeten je operacijski kod druge instrukcije. Sadraj programskog brojila povean je za 1. Instrukcijski kod 9B, uz specificiranje operacije (pribrajanja operanda sadraju akumulatora A), odreuje i nain adresiranja - sledei bajt je manje znaajan bajt adrese operanda.
Sl.16 - Stanje nakon pribavljanja prvog bajta druge instrukcije: Prvi ciklus druge instrukcije
Sl.17 prikazuje stanje nakon pribavljanja drugog bajta instrukcijske rei. Programsko brojilo poveano je za 1, a u brojilo podataka smetava se adresa operanda. Sl.18 prikazuje rezultat konanog izvoenja instrukcije-sadraju akumulatora A pribrojen je sadraj sa memorijske lokacije 00FF (1A). Programsko brojilo nije poveano za 1 - mikroprocesor je bio u fazi IZVRI.
Sl. 17 - Stanje nakon pribavljanja drugog bajta instrukcijske rei: Drugi ciklus druge instrukcije
10
Sl.19 prikazuje vremenski dijagram izvoenja druge instrukcije. Tabela 1 prikazuje stanje na sabirnici podataka i adresnoj sabirnici za model mikroprocesora prilikom izvoenja zadatog programa sa Sl.7. U mnemonikom kodu program bi imao (za mikroprocesor M6800) sledei oblik: LDAA $0201 ADDA $FF
(Napomena: $ je oznaka za heksadekadni broj )
11
B6
9B
Broj ciklusa potreban mikroprocesoru M6800 za izvoenje prve instrukcije je 4, adruge 3 ciklusa. Vidimo da se razmatranja na jednostavnom modelu u ovom primeru podudaraju s izvoenjem u stvarnim mikroprocesorima.
ZADACI
1. Na osnovu Tabele 2, koja opisuje stanje na spoljnim sabirnicama pojednostavnjenog modela mikroprocesora za instrukciju STA $010F (pohrani sadraj akumulatora A na memorijsku lokaciju 010F), nacrtajte vremenski dijagram. Tabela 2 Stanje na sabirnicama u zadatku 1
Instrukcija Broj ciklusa Ciklus Signa l itaj Signal pii Adresna sabirnica Sabirnica podataka
1 4 2 3 4
1 1 1 0
0 0 0 1
Instrukcijski kod Prva polovina odredine adrese (01) Druga polovina odredine adrese (0F) Podatak iz akumulatora
12
2. Nacrtajte vremenski dijagram za sledeu instrukciju LDA $0F (napuni akumulator A sa memorijske lokacije 000F ). Instrukcija se izvrava u tri ciklusa. 3. Mikroprocesori su spori. ta je glavni razlog njihovoj sporosti? 4. Sl.21 prikazuje poetna stanja internih registara pojednostavljenog modela mikroprocesora. Upiite nove sadraje u interne registre i memoriju nakon izvoenja sledee programske sekvence: LDA ADD ADD STA $0109 $010A $010B $01FF
13
14
PRIMER: Pratiti sadraje registara i stanja na upravljakoj liniji R/W, adresnoj sabirnici i sabirnici podataka u toku izvravanje sledeeg programskog segmenta: komentar: LDA $0201 Napuni ACC sadrajem lokacije (0201)16 ADD $FF Dodaj sadraj lokacije (00FF)16 STA $0202 Smesti rezultat na adresu (0202)16 JMP $0113 Skok na instrukciju iji se kod nalazi na adresi (0113)16 Sadraj memorije je: aresa sadraj: 00FF 0100 0101 0102 0103 0104 0105 0106 0107 0108 0109 010A . 0113 . 0201 REENJE:
Instrukcija: ciklus
1A B6 02 01 9B FF 97 02 02 D1 01 13 23
PC 0101 0102 0103 0103 0104 0105 0105 0106 0107 0108 0108 0109 010A 010B 0114
IR B6 B6 B6 B6 9B 9B 9B 97 97 97 97 D1 D1 D1 Kod instr.
DC 02-0201 0201 0201 00FF 00FF 00FF 02-0202 0202 0202 01-0113 0113
ACC 23 23 23 3C 3C 3C 3C 3C 3C 3C 3C 3C
R/W 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Adresna sabirnica 0100 0101 0102 0201 0103 0104 00FF 0105 0106 0107 0202 0108 0100 010A 0113
15