610 likes | 809 Views
Komunikacija µ pro./ µ upr. sa vanjskim jedinicama. Komunikaciju računala sa okolinom omogućuje ulazno-izlazni sustav računala . Njega čine: -vanjski uređaji -pripadajući pristupni sklopovi -programska potpora.
E N D
Komunikaciju računala sa okolinom omogućuje ulazno-izlazni sustav računala. • Njega čine:-vanjski uređaji-pripadajući pristupni sklopovi -programska potpora
Vanjski uređaji složeni su uređaji koji na svojem ulazu ili izlazu primaju ili daju veličine koje vrlo često nisu digitalni signali za razliku od procesora ili memorije koji rade isključivo sa digitalnim signalima. Osim toga vanjski se uređaji razlikuju i po načinu prikaza podataka, načinima kodiranja te brzinama prijenosa podataka. Te su brzine najčešće niže od onih na kojima može raditi procesor.
Primjeri vanjskih uređaja su monitori, DVD pogonski uređaji, pisači i sl. Vanjske uređaje zovemo i ulazno-izlaznim uređajima(U/I uređajima).
Pristupni sklopovi omogućuju spajanje vanjskih uređaja na vanjsku sabirnicu računala. Zovu se još ulazno-izlazni (U/I međusklopovi). S obzirom na broj bitova podatka koji se prenose istodobno, prijenos može biti serijski i paralelni. Neki ulazno-izlazni uređaji, kao i njihovi međusklopovi, podupiru isključivo prijenos u računalo ili iz računala, dok drugi podupiru prijenos podataka u oba smijera.
Da bi prijenos podataka između vanjskih uređaja i procesora ili memorije računala bio moguć, U/I međusklop mora obavljati sljedeće funkcije:-dekodirati adrese-prepoznati upravljačke signale-prihvatiti podatke (npr. Iz ulaznog uređaja) i pripremiti ih za dalji prijenos(npr. prema memoriji)-otkriti pogrešku u prijenosu-omogućiti sinkronizaciju svih navedenih aktivnosti
To se može izvesti na tri načina: • Programirani prijenos podataka • Prekidni prijenos podataka • Izravni pristup memoriji(DMA)
Da bi procesor mogao upravljati prijenosom podataka između računala i vanjskih uređaja on mora moći adresirati te uređaje. Načini adresiranja vanjskih uređaja su: • Memorijsko preslikavanje registara U/I međusklopova (engl. Memory mapped I/O) • Izdvojeno adresiranje U/I međusklopova (engl. Isolated I/O).
U slučaju mem. preslikavanja procesor registre U/I međusklopova vidi kao dio memorijskog prostora, čime je stvarni memorijski prostor umanjen. Za prijenos podataka koriste se iste instrukcije kao za prijenos podataka između procesora i memorije. Prijenos se odvija sabirnicom računala.
U slučaju izdvojenog adrsiranja U/I međusklopova, procesor ima jednu ili više dodatnih upravljačkih linija koje određuju pripada li adresa na adresnoj sabirnici memorijskoj lokaciji ili međusklopu.
Programirani prijenos podataka • U glavni program uključeni su i prekidi za vrijeme kojih µpro. obavlja komunikaciju sa vanjskim jedinicama (očitanje nekog stanja, davanje nekih novih podataka, korekcija vanjskoj jedinici…)
Izvodi se -Glavni program -prekid i uspostava komunikacije sa vanjskim ur. br 1. -glavni program -prekid i uspostava komunikacije sa vanjskim ur. br 2. • glavni program • …
Prednosti: -postoji relativno jednostavan program -ne trebaju dodatni pristupni sklopovi. • Nedostaci: • Vrijeme čekanja nekih uređaja je kraće od vremena odziva i tada treba primijeniti neki drugi način prijenosa • µpro. nepotrebno troši vrijeme na prozivanje vanjskih uređaja koji nisu tražili posluživanje
Dvije su osnovne vrste programiranog U/I prijenosa:-programirani bezuvjetni U/I prijenos-programirani uvjetni U/I prijenos • Programirani bezuvjetni prijenos najjednostavnija je, ali i najnesigurnija metoda prijenosa. Prijenos podataka između računala i vanjskog uređaja izvodi se, a da prije samog izvođenja nije provjereno jeli vanjski uređaj spreman za komunikaciju.
PROGRAM . . . LD $8601 . . . ST$8833 procesor registar VANJSKA SABIRNICA PRIJENOS ULAZ U/I MEĐUSKLOP memorija ULAZNI REGISTAR PRIJENOS IZLAZ IZLAZNI REGISTAR STATUSNI REGISTAR VANJSKI UREĐAJ
Komunikacija između U/I međusklopa i vanjskog uređaja izvedena je pomoću dva registra. Registar u koji upisuje vanjski uređaj je ulazni registar, dok se registar iz kojeg vanjski uređaj čita zove izlazni registar. • Instrukcija LD $8601 napunit će akumulator sadržajem registra koji se nalazi na adresi 8601. To je u ovom slučaju ulazni registar U/I međusklopa.
Instrukcija ST $8833 pospremit će sadržaj akumulatora u registar koji se nalazi na adresi 8833., pri čemu je riječ o izlaznom registru U/I međusklopa.
Koristi se za prijenos male količine podataka bajta ili riječi. Koristi se u slučaju kad je vanjski uređaj uvijek spreman za prijenos podataka a njegovo vrijeme odziva poznato i stalno. Primjeri su analogno-digitalni pretvornici.
Programirani uvjetni U/I prijenos Kod ove metode prijenosa prvo se provjerava jeli vanjski uređaj spreman za komunikaciju. Ako nije, procesor u petlji čeka tako dugo dok se ne stvore uvjeti za prijenos podataka.
Čitaj statusni registar ne Vanjski log. Sklopspreman da prijenos
U ovom slučaju U/I međusklop mora imati dodatni registar- statusni registar koji otkriva stanje međusklopa. Provjerom statusa, procesor će znati jeli vanjski uređaj učitao podatak koji mu je poslan, odnosno je li vanjski uređaj upisao novi podatak. Vanjski će uređaj dobiti informaciju o tome jeli procesor u izlazni registar upisao novi podatak, odnosno je li iz ulaznog registra pročitao podatak.
Prednost je ove metode sigurnost prijenosa koji se odvija najvećom mogućom brzinom tj. čim je vanjski uređaj spreman. Nedostatak je čekanje u petlji sporih uređaja čime procesor gubi vrijeme. • U Programirane prijenose možemo uvrstiti i postupak prozivanja (engl. Polling). Vrši se cikličko prozivanje vanjskih uređaja koji su spojeni na jedan procesor.
Primjer programa koji predstavlja prozivanje: If P3.0=0 then Gosub Prijenos0 Endif If P3.1=0 then Gosub Prijenos1 Endif If P3.2=0 then Gosub Prijenos2 Endif
Prekidni prijenos • U ovom načinu rada µpro. šalje zahtjev za prekidom na prekidni ulaz µpro. Takvih ulaza µpro. ima više. Nakon primljenog zahtjeva za prekidom µpro. završava tekuću instrukciju (zaustavlja glavni program), pohranjuje stanja internih registara na stog, onemogućava novi prekid (prekid prekida) i prelazi na program za obradu prekida (prekidni program).
Intel 8051 ima sljedeće prekidne ulaze: Prekid Prekidni vektor INT0 0003H INT1 0013H INT2 004BH INT3 0053H INT4 005BH INT5 0063H INT6 006BH
Nedostatak ovog načina je gubitak vremena dok µpro. ustanovi sa koje jedinice je došao zahtjev za prekid. To se rješava vektorskim prekidom. U tom načinu rada vanjska jedinica uz zahtjev za prekidom šalje adresu potprograma na koju glavni program treba skočiti.
Još neki nedostaci ovog načina su: -poskupljenje uređaja radi posebnih sklopova koji šalju prekidnu adresu -asinkroni rad što znači da zahtjev za prekidom može doći bilo kada pa obrada prekida mora biti programski dobro napravljena da ne bi došlo do gubitka podataka bitnih za glavni program.
Glavni program • Vrste prekidnog U/I prijenosa Prekidni program Zahtjev za prekid
Kod prekidnog načina rada, na zahtjev jednog od izvora prekida, procesor prekida s izvođenjem tekućeg programa i prelazi na izvođenje prekidnog programa. Nakon što je prekidni program izvršen, izvršenje tekućeg programa nastavlja se na mjestu na kojem je bio prekinut.
S obzirom na izvore prekida, razlikujemo: • U/I prekide • Prekide izazvane vremenskim sklopovima (engl. Timerinterupts) • Prekide zbog grešaka u sklopovima (npr. Ispad napajanja, greške parnosti u memoriji) • Programske prekide (engl. Softwareinterrupts) • Sustavne pozive SVC (engl. Supervisorycall, systemcall) • Iznimke(engl. Exception)
U/I prekidi predstavljaju zahtjev za ulazno-izlaznom operacijom. Pripadaju skupini maskirajućih prekida (engl. Maskable interrupt), što znači da ih procesor ako je postavljena prekidna maska, može ignorirati. S obzirom na to da je izvor prekida sklopovlje ovi se prekidi ubrajaju u tzv. sklopovske prekide (eng. Hardware interrupts).
Prekidi izazvani vremenskim sklopovima kao što su nadzorna brojila (engl. Watchdog timer) osiguravaju da operacije npr. čekanje na ispis, neće trajati beskonačno. Stanje ovakvog brojila umanjuje se u svakom periodu signala takta. Kada dostignu nulu, generira se zahtjev za prekid. Ovakvi prekidi ne mogu se maskirati, što znači da ih procesor ne može ignorirati.
Prekidi izazvani zbog grešaka u sklopovima mogu dovesti i do prisilnog isključenja računala i gubitka svih podataka koje nismo spremili. Imaju najviši prioritet i ne mogu se ignorirati.
Programske prekide generiraju sami programi, odnosno procesor na osnovi određene instrukcije. Kada dođe do programskog prekida, procesor na stog sprema sadržaj programskog brojila, registra uvjeta … kako bi se osigurao povratak na isto mjesto u prekinutom programu i prelazi na izvođenje prekidnog programa. Ne mogu se ignorirati. Koriste se u programima za otkrivanje pogrešaka.
Sustavne pozive generiraju korisnički programi i traže pomoć OS-a i prelazak iz korisničkog u nadgledni (privilegirani) način rad. Nakon izvršene tražene operacije OS se vraća u korisnički način rada te nastavlja izvođenje ranije prekinutog programa.
Prekidnim U/I prijenosom otklanjaju se nedostaci programiranog prijenosa. Nije potrebno poznavati vrijeme odziva vanjskih uređaja, a procesor ne mora gubiti vrijeme čekajući ili prozivajući vanjske uređaje. Kada neki od vanjskih uređaja zatjeva prijenos podataka on generira zahtjev za prekid (IRQ) na posebnu prekidnu liniju.
Tijek obrade U/I prekida • U/I uređaj generira zahtjev za prekid IRQ, i preko U/I međusklopa šalje ga procesoru. • Procesor utvrđuje hoće li ga prihvatiti ili ne te istodobno do kraja izvodi tekuću instrukciju
3. Ako prihvaća zahtjev, procesor odgovara signalom potvrde prekida IACK (engl. Interruptacknowledge). Ovisno o organizaciji prekida u ovom trenutku procesor može postaviti prekidnu masku (bit prekida) kojom se onemogućuje dalje prekidanje. 4. Na stog se pohranjuju sadržaji PC i sadržaj registra zastavica CCR 5. U PC se upisuje adresa prekidnog programa (vektor prekida)
6. Izvodi se prekidni program 7. Nakon izvršenja prekidnog programa izvodi se naredba za povratak iz prekida RTI (engl return from interrupt), koja sa stoga obnavlja sadržaje registara procesora i nastavlja ranije prekinuti program i uklanja prekidnu masku ako je bila postavljena.
MEMORIJA Vanjska sabirnica Potvrda zahtjeva za prekid Zahtjev za prekid procesor IRQ ACK IRQ u/i međusklop u/i međusklop …. Vanjski uređaj Vanjski uređaj Prekidna struktura s jednom linijom zahtjeva za prekid
Prioriteti prekida • Činjenica je da procesor u određenom trenutku može obrađivati smo jednu instrukciju pa tako i samo jedan prekid. Postavlja se pitanje što se događa u slučaju istodobnog generiranja više zahtjeva za prekid ili kad se tijekom obrade prekida pojavi novi zahtjev za prekid. Za to se uvodi prioritet prekida.
U slučaju više istodobnih zahtjeva za prekid prekidi će se obrađivati od najvažnijeg (s najvišim prioritetom) prema najmanje važnom (s najnižim prioritetom). Ako tijekom obrade jednog prekida dođe do zahtjeva za novim prekidom, provjerava se njegov prioritet. Ako je riječ o prekidu višeg prioriteta kreće se na njegovo izvođenje, a ako je riječ o prekidu nižeg prioriteta postavlja se na listu čekanja.
Prekidanje prekidne rutine naziva se gniježdenje prekida (engl. nesting). 2. Zahtjev za prekid Prijenos 2 1. Zahtjev za prekid prijenos1 Prijenos 3 3. Zahtjev za prekid
Prednost prekidnog U/I prijenosa je brzina odziva jer će vanjski uređaj vrlo brzo biti poslužen. • Nedostatak prekidnog U/I prijenosa zahtjev je za dodatne sklopove koji će upravljati prekidima, te prebacivanje sadržaja procesorskih registara na stog i obratno, čime se gubi procesorsko vrijeme.
Važno je istaknuti da se prekidni U/I prijenos u potpunosti izvodi pod kontrolom i uz sudjelovanje procesora, ali tek nakon zahtjeva vanjskog uređaja.
Izravni pristup memoriji DMA(direct memory acces) • Programirani i prekidni U/I prijenos nisu pogodni za veliku količinu podataka.
U programiranom U/I prijenosu procesor troši vrijeme prozivajući ili čekajući vanjske uređaje umjesto da radi nešto korisnije. • U slučaju prekidnog U/I prijenosa, koji je učinkovitiji od programiranog, troši se vrijeme u radu sa stogom. • U oba slučaja podaci se prenose preko procesora, što znači da tijekom tih prijenosa procesor ne može raditi ništa drugo.
Organizacija sustava sa DMA prijenosom procesor Upravljačka sabirnica Organizacija sustava sa DMA prijenosom Adresna sabirnica Podatkovna sabirnica DMA upr. sklop memorija U/I međusklop Vanjski uređaj
DMA upravljački sklop može preuzeti upravljanje sabirnicama i prenijeti podatke između vanjskog uređaja i memorije bez sudjelovanja procesora.