mr04-organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/courses/matf...

19
1 Organizacija ulaza i izlaza Vladimir Filipovi [email protected] Matematiki fakultet Mikroraunari 2/111 [email protected] Organizacija ulaza i izlaza Jedna od osnovnih karakteristika raunara je njegova sposobnost da razmenjuje podatke sa drugim ureajima. Ta sposobnost omoguuje oveku-operatoru da koristi tastaturu i ekran radi procesiranja teksta i grafike. Ljudi intenzivno koriste raunare radi komunikacije sa drugim raunarima preko Interneta i radi dobijanja informacija odasvud sa Zemljine kugle. U drugim aplikacijama, raunari su manje vidljivi, ali ajni: predstavljaju integralni deo kunih primena, opreme za proizvodnju, transportne sisteme, bankarskih i POS terminala. U takvim aplikacijama, ulaz u raunar može doi od senzorskog prekidaa, digitalne kamere, mikrofona itd. Izlaz može biti zvuni signal koji se šalje zvuniku, ili digitalno enkodirana komanda da se promeni brzina motora, da se pomeri robot itd. Ovde e se detaljno razmotriti razliiti naini na koje se izvršavaju U/I operacije. Matematiki fakultet Mikroraunari 3/111 [email protected] Pristup U/I ureajima Sledei dijagram prikazuje povezivanje U/I ureaja na raunar korišenjem jedinstvene magistrale. Obino se magistrala sastoji od tri skupa linija, koje se koriste za prenos adresa, podataka i kontrolnih signala. Svakom U/I ureaju se dodeljuje jednoznaan skup adresa. Kada procesor postavi konkretnu adresu na adresne linije, ureaj koji prepozna tu adresu odgovori na komandu koja je prosleena kroz kontrolne linije. Procesor zahteva bilo operaciju itanja, bilo upisa, pa se zahtevani podaci prenose kroz linje za podatke. Matematiki fakultet Mikroraunari 4/111 [email protected] Pristup U/I ureajima Kada U/I ureaji i memorija dele isti adresni prostor, takva organizacija se naziva memorijski mapiran U/I. Kod memorijski mapiranog U/I, ma koja mašinska instrukcija koja može pristupiti memoriji može biti korišena za prenos podataka do/od /I ureaja. Na primer, ako je DATAIN adresa ulaznog bafera koji je pridružen tastaturi, tada instrukcija Move DATAIN, R0 ita podatke iz DATAIN i smešta ih u registar R0. Na slian nain, instrukcija Move 0, DATAOUT prosleuje sadržaj registra R0 ka lokaciji DATAOUT, koja može biti izlazni bafer podataka za ekran ili štampa. Najvei broj raunara koristi memorijski mapiran U/I. Neki procesori imaju i specijalne In i Out instrukcije za izvršenje U/I transfera. Jedna od prednosti odvojenog U/I adresnog prostora je ta što tada U/I rade sa manjim brojem adresnih linija. Odvojeni U/I adresni prostor ne znai da U/I adresne linije moraju biti fiziki razliite od memorijskih adresnih linija. Naime, specijalan signal na magistrali ukazuje da se zahtev za transfer itanja ili upisa odnosi na U/I operaciju i tada memorija ignoriše postavljeni zahtev. Matematiki fakultet Mikroraunari 5/111 [email protected] Pristup U/I ureajima Sledei dijagram ilustruje koji je hardver neophodan da bi se U/I ureaj povezao na magistralu. Matematiki fakultet Mikroraunari 6/111 [email protected] Pristup U/I ureajima Uoavaju se sledei elementi: Adresni dekoder adresa pojavi na adresnim linijama. Registar podataka uva podatke koji se prenose prema procesoru ili od njega. Statusni registar sadrži informacije koje su relevantne za operaciju U/I ureaja. Registar podataka i status registar su povezani na magistralu podataka i njima su dodeljene jednoznane adrese. Adresni dekoder, registar podataka i statusni registar, kao i kontrolna kola za koordinaciju U/I prenosa zajedno obrazuju interfejs U/I ureaja. U/I ureaji rade na brzinama mnogo nižim od brzine procesora. Za vreme dok ovek-operator kuca znake na tastaturi, procesor može izvršiti na milione instrukcija izmeu razliitih otkucaja. Instrukcija koja ita znak sa tastature treba da se izvrši samo kada je znak dostupan u ulaznom baferu interfejsa tastature. Takoe, mora se voditi rauna o tome da se ulazni znak tano jednom ita.

Upload: doananh

Post on 31-Jan-2018

234 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

1

Organizacija ulaza i izlaza

Vladimir Filipovi�[email protected]

Matemati�ki fakultet Mikrora�unari 2/[email protected]

Organizacija ulaza i izlaza

Jedna od osnovnih karakteristika ra�unara je njegova sposobnost da razmenjuje podatke sa drugim ure�ajima. Ta sposobnost omogu�uje �oveku-operatoru da koristi tastaturu i ekran radi procesiranja teksta i grafike.

Ljudi intenzivno koriste ra�unare radi komunikacije sa drugim ra�unarima preko Interneta i radi dobijanja informacija odasvud sa Zemljine kugle.

U drugim aplikacijama, ra�unari su manje vidljivi, ali���������������ajni: predstavljaju integralni deo ku�nih primena, opreme za proizvodnju, transportne sisteme, bankarskih i POS terminala. U takvim aplikacijama, ulaz u ra�unar može do�i od senzorskog prekida�a, digitalne kamere, mikrofona itd. Izlaz može biti zvu�ni signal koji se šalje zvu�niku, ili digitalno enkodirana komanda da se promeni brzina motora, da se pomeri robot itd.

Ovde �e se detaljno razmotriti razli�iti na�ini na koje se izvršavaju U/I operacije.

Matemati�ki fakultet Mikrora�unari 3/[email protected]

Pristup U/I ure�ajima

Slede�i dijagram prikazuje povezivanje U/I ure�aja na ra�unar koriš�enjem jedinstvene magistrale.

Obi�no se magistrala sastoji od tri skupa linija, koje se koriste za prenos adresa, podataka i kontrolnih signala.Svakom U/I ure�aju se dodeljuje jednozna�an skup adresa. Kada procesor postavi konkretnu adresu na adresne linije, ure�aj koji prepozna tu adresu odgovori na komandu koja je prosle�ena kroz kontrolne linije. Procesor zahteva bilo operaciju �itanja, bilo upisa, pa se zahtevani podaci prenose kroz linje zapodatke.

Matemati�ki fakultet Mikrora�unari 4/[email protected]

Pristup U/I ure�ajima

Kada U/I ure�aji i memorija dele isti adresni prostor, takva organizacija se naziva memorijski mapiran U/I.Kod memorijski mapiranog U/I, ma koja mašinska instrukcija koja može pristupiti memoriji može biti koriš�ena za prenos podataka do/od� /I ure�aja.Na primer, ako je DATAIN adresa ulaznog bafera koji je pridružen tastaturi, tada instrukcija

Move DATAIN, R0�ita podatke iz DATAIN i smešta ih u registar R0.Na sli�an na�in, instrukcija

Move��0, DATAOUTprosle�uje sadržaj registra R0 ka lokaciji DATAOUT, koja može biti izlazni bafer podataka za ekran ili štampa�.Najve�i broj ra�unara koristi memorijski mapiran U/I. Neki procesori imaju i specijalne In i Out instrukcije za izvršenje U/I transfera. Jedna od prednosti odvojenog U/I adresnog prostora je ta što tada U/I�������rade sa manjim brojem adresnih linija. Odvojeni U/I adresni prostor ne zna�i da U/I adresne linije moraju biti fizi�ki razli�ite od memorijskih adresnih linija. Naime, specijalan signal na magistrali ukazuje da se zahtev za transfer �itanja ili upisa odnosi na U/I operaciju i tada memorija ignoriše postavljeni zahtev.

Matemati�ki fakultet Mikrora�unari 5/[email protected]

Pristup U/I ure�ajima

Slede�i dijagram ilustruje koji je hardver neophodan da bi se U/I ure�aj povezao na magistralu.

Matemati�ki fakultet Mikrora�unari 6/[email protected]

Pristup U/I ure�ajima

Uo�avaju se slede�i elementi:• Adresni dekoder���������������������������������������������adresa pojavi na adresnim linijama.• Registar podataka �uva podatke koji se prenose prema procesoru ili od njega.• Statusni registar sadrži informacije koje su relevantne za operaciju U/I ure�aja.

Registar podataka i status registar su povezani na magistralu podataka i njima su dodeljene jednozna�ne adrese. Adresni dekoder, registar podataka i statusni registar, kao i kontrolna kola za koordinaciju U/I prenosa zajedno obrazuju interfejs U/I ure�aja.

U/I ure�aji rade na brzinama mnogo nižim od brzine procesora. Za vreme dok �ovek-operator kuca znake na tastaturi, procesor može izvršiti na milione instrukcija izme�u razli�itih otkucaja.

Instrukcija koja �ita znak sa tastature treba da se izvrši samo kada je znak dostupan u ulaznom baferu interfejsa tastature. Tako�e, mora se voditi ra�una o tome da se ulazni znak ta�no jednom �ita.

Page 2: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

2

Matemati�ki fakultet Mikrora�unari 7/[email protected]

Pristup U/I ure�ajima

Osnovna ideja je opisana ranije: za ulazni ure�aj kao što je tastatura, statusni fleg SIN se pojavljuje kao deo statusnog registra interfejsa U/I ure�aja. Ovaj fleg se postavlja na 1 kad god se unese znak sa tastature, a briše na 0 kad procesor pro�ita taj znak. Stoga, proverom SIN flega, softver može obezbediti da uvek �ita validne podatke.Slede�i dijagram prikazuje registre koji se koriste kod operacija prenosa podataka.

Matemati�ki fakultet Mikrora�unari 8/[email protected]

Pristup U/I ure�ajima

Program koji �ita liniju sa tastature, smešta je u memorijski bafer i prikazuje je na ekranu.

Matemati�ki fakultet Mikrora�unari 9/[email protected]

Pristup U/I ure�ajima

Prethodni program je ilustracija tzv. programski kontrolisanog U/I, u kome procesor ponavlja proveru statusnog indikatora kako bi postigao zahtevanu sinhronizaciju izme�u procesora i U/I ure�aja. Ovakav vid komunikacije se jošnaziva i prozivanje.

Pored ovog, postoje još dva uobi�ajena mehanizma za implementiranje U/I operacija: prekidi i direktan pristup memoriji.

U slu�aju prekida, sinhronizacija se postiže tako što U/I������šalje specijalni signal preko magistrale kad god je taj ure�aj spreman za prenos podataka.

Direktan pristup memoriji����������������������������������� /I ure�aje. Ona uklju�uje da interfejs ure�aja direktno prenosi podatke prema memoriji ili iz memorije, bez potrebe da procesor bude neprekidno uklju�en u taj proces.

Matemati�ki fakultet Mikrora�unari 10/[email protected]

Prekidi

Prilikom prozivanja procesor provodi vreme u petlji kojom proverava dostupnost U/I ure�aja.

U na�inu komunikacije pomo�u prekida, može se podesiti U/I ure�aj da upozori procesor da je on slobodan. To se postiže tako što se procesoru šalje hardverski signal, nazvanog prekid.

Obi�no je bar jedna linija u kontrolnoj magistrali, nazvana linija za zahtev za prekidom, posve�ena realizaciji ovog zadatka.

Na taj na�in, više se ne zahteva od procesora da neprekidno proverava status spoljašnjih ure�aja, on može u periodu �ekanja da ure�aj postane dostupan (umesto da u petlji proverava raspoloživost ure�aja) realizovati neke korisne operacije.

Matemati�ki fakultet Mikrora�unari 11/[email protected]

Prekidi

Primer.Razmotrimo zadatak koji zahteva izvršenje nekih izra�unavanja i štampu rezultata na štampa�u. Potom slede dalja izra�unavanja i štampa, itd.Neka se program sastoji od dve rutine, COMPUTE i PRINT. Pretpostavimo da COMPUTE proizvodi n linija izlaza, koje treba prikazati koriš�enjem rutine PRINT.

Prenos kontrole koriš�enjem prekida

Matemati�ki fakultet Mikrora�unari 12/[email protected]

Prekidi

Trebamo uo�iti da, kao deo rukovanja prekidima, procesor mora informisati ure�aj da je zahtev od tog ure�aja prepoznat, pa da taj ure�aj može da ukloni svoj signal za zahtev za prekidom. To se može posti�i pomo�u specijalnog kontrolnog signala magistrale, obi�no nazvanog signal za potvrdu prekida. Alternativa tom pristupu, koja se �esto pojavljuje je da sam prenos podataka izme�u procesora i interfejsa U/I ure�aja služi za tu svrhu – da izvršavanje instrukcija rutine za opsluživanje prekida, koje pristupa statusnom registru i registru podataka interfejsa, implicitno informiše ure�aj da je njegov prekid prepoznat.

Na prvi pogled, tretiranje prekida se ne razlikuje mnogo od tretiranja potprograma. Me�utim, postoji važna razlika: dok potprogram izvršava funkciju koju je zahtevao program koji ju je pozvao, rutina za opsluživanje prekida ne mora da ima ništa zajedni�ki sa programom koji se izvršava u trenutku prihvatanja zahteva za prekid.

Stoga, pre po�etka izvršavanja rutine za opsluživanje prekida, mora da se sa�uva ma koja informacija koja može biti promenjena tokom izvršavanja te rutine i te sa�uvane informacije moraju biti restaurisane pre nego što se nastavi sa izvršavanjem prekinutog programa.

Page 3: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

3

Matemati�ki fakultet Mikrora�unari 13/[email protected]

Prekidi

Informacije koje se trebaju sa�uvati i restaurisati obi�no uklju�uju sadržaje uslovnih flegova i sadržaje svih registara koji su koriš�eni od obe strane – i od prekinutog programa i od rutine za opsluživanje prekida. Zadatak �uvanja i restaurisanja informacija se ili izvrši automatski od strane procesora, ili se realizuje izvršavanjem instrukcija programa.

Najve�i broj modernih procesora �uva samo minimalni broj neophodnih informacija koji je potreban radi o�uvanja integriteta izvršavanja programa. Razlog za takav dizajn je to što �uvanje i restaurisanje registara uklju�uje prenos podataka sa memorijom, koji uve�ava ukupno vreme izvršavanja programa. Nadalje, �uvanje registara uve�ava interval vremena od trenutka kada je primljen zahtev za prekid do po�etka izvršavanja rutine za opsluživanje prekida. Ovo kašnjenje se zove prekidno usporenje. U nekim primenama je apsolutno neprihvatljivo da prekidno usporenje bude dugo.

Dakle, moderni procesori obi�no �uvaju samo statusnu re� procesora i broja�instrukcija. Ako ima potrebe da se još nešto �uva, to �e se uraditi na po�etku rutine za opsluživanje prekida, a sa�uvane informacije �e se restaurisati na njenom kraju.

Matemati�ki fakultet Mikrora�unari 14/[email protected]

Prekidi

U nekim ranijim procesorima, naro�ito onim procesorima koji su imali mali broj registara, svi registri su bili automatski �uvani od strane hardvera procesora kad god je bio prihvatan zahtev za prekid. Sa�uvani podaci su bivali restaurisani u odgovaraju�e registre prilikom izvršenja instrukcije za povratak iz prekida.Neki ra�unari sadrže dve vrste prekida – prva vrsta prekida �uva sve registre, a druga vrsta ne. U takvoj situaciji, konkretni U/I ure�aj može koristiti bilo koju od ove dve vrste prekida, zavisno od zahteva za vreme odgovora.Još�����������������������������������dupliranog skupa registara. U tom slu�aju, razli�iti skupovi registara može biti koriš�en od strane rutine za opsluživanje prekida, �ime se eliminiše potreba za �uvanjem i restauracijom registara.

Prekid nije samo jednostavni mehanizam za koordinisanje U/I prenosa. U opštem slu�aju, prekidi obezbe�uju prenos kontrole sa jednog programa na drugi, koji je iniciran doga�ajem koji je spoljašnji za ra�unar. Izvršavanje prekinutog programa se nastavlja po završetku rada rutine za opsluživanje prekida. Pojam prekida se koristi u operativnim sistemima i u mnogim kontrolnim aplikacijama gde izvršavanje odre�enih rutina mora biti precizno vremenski usaglašeno sa spoljašnjim doga�ajima (aplikacije u realnom vremenu).

Matemati�ki fakultet Mikrora�unari 15/[email protected]

Hardver za prekide

Ve���������������� /I ure�aju zahtevaju prekid aktiviranjem linije magistrale nazvane zahtev za prekid. Najve�i broj ra�unara obi�no ima više U/I ure�aja koji mogu zahtevati prekid.Jedinstvena linija za zahtev za prekid (kao na slici) može biti iskoriš�ena za opsluživanje n ure�aja. Svi ure�aji su povezani na tu liniju pomo�u prekida�a povezanih na uzemljenje.

Ekvivalentno kolo za “otvorenu” magistralu koja se koristi za implementaciju zajedni�ke linije za zahteve za prekid

Matemati�ki fakultet Mikrora�unari 16/[email protected]

Hardver za prekide

Da bi neki od ure�aja zahtevao prekid, on samo zatvori prekida� koji mu odgovara. Ako su svi zahtevi za prekid INTR1 do INTRn neaktivni, tj. svi prekida�i su otvoreni, tada �e napon u liniji za zahtev za prekid biti Vdd. Ovo predstavlja neaktivno stanje linije.Kada ure�aj zahteva prekid tako što zatvori svoj prekida�, nivo napona pada na 0, što dovodi do toga da signal za zahtev za prekid koji prima procesor, ozna�en sa INTR postane 1. Lako se uo�ava da je

INTR = INTR1 + INTR2 + ... + INTRnUobi�ajeno je da se za signalizaciju zahteva za prekid koristi komplementni oblik INTR, zato što je signal zahteva aktivan onda kada je na liniji stanje niskog napona.

____

Matemati�ki fakultet Mikrora�unari 17/[email protected]

Omogu�avanje i onemogu�avanje prekida

Mogu�nosti koje obezbe�uje ra�unar moraju dati programeru kompletnu kontrolu nad doga�ajima koji se dešavaju tokom izvršenja programa.Dolazak zahteva za prekid sa spoljašnjeg ure�aja dovodi do toga da procesor suspenduje izvršavanje jednog programa i po�ne sa izvršavanjem nekog drugog. S obzirom da se prekidi mogu pojaviti u ma kom trenutku, oni mogu promeniti sekvencu doga�aja koju je predvidio programer. Stoga se prekid izvršavanja programa mora pažljivo kontrolisati i poželjno je da ra�unari raspolažu sa fundamentalnom osobinom omogu�avanja i onemogu�avanja prekida.Postoji mnogo situacija u kojima procesor treba da ignoriše zahteve za prekid. Na primer, u prethodnom primeru sa štampanjem, zahtev za prekid koji poti�e od štampa�a treba da bude prihva�en samo ako postoje linije teksta koje treba odštampati. Po završetku štampanja poslednje linije u skupu od n linija, prekidi treba da budu onemogu�eni sve dok novi skup linija ne postane na raspolaganju za štampanje.Dakle, neki na�in omogu�avanja i onemogu�avanja prekida mora biti na raspolaganju programeru. Jednostavan na�in da se to postigne je obezbe�ivanje mašinskih instrukcija za omogu�avanje i onemogu�avanje prekida.

Matemati�ki fakultet Mikrora�unari 18/[email protected]

Omogu�avanje i onemogu�avanje prekida

Razmotrimo detaljnije šta se doga�a prispe�a zahteva za prekid od jednog ure�aja. Kada ure�aj aktivira signal za zahtev za prekid, on “drži” taj signal aktivnim sve dok na sazna da je procesor prihvatio njegov zahtev. Ovo zna�i da �e signal za zahtevanje prekida biti aktivan tokom izvršavanja rutine za opsluživanje prekida, možda sve dok se ne dohvati instrukcija koja pristupa tom ure�aju. Od esencijalnog zna�aja je da taj aktivni signal za zahtev ne dovede do uzastopnih prekida, koji bi doveli do toga da sistem u�e u beskona�nu petlju iz koje se ne može oporaviti. Postoji nekoliko mehanizama koji rešavaju ovaj problem.• Prva mogu�nost je da hardver procesora ignoriše liniju za zahtev za prekidom sve dok se ne završi izvršenje prve instrukcije u rutini za opsluživanje prekida. U tom slu�aju, programer može postaviti instrukciju za onemogu�avanje prekida na po�etak rutine za opsluživanje prekida i tako spre�iti dalje prekide sve dok se ne izvrši instrukcija koja omogu�uje prekide. Obi�no je instrukcija koja omogu�uje prekide poslednja instrukcija rutine za opsluživanje prekida, koja neposredno prethodi instrukcija za povratak iz rutine za opsluživanje prekida. Procesor mora garantovati da �e izvršavanje instrukcije za povratak biti okon�ano pre dešavanja daljih prekida.

Page 4: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

4

Matemati�ki fakultet Mikrora�unari 19/[email protected]

Omogu�avanje i onemogu�avanje prekida

• Druga mogu�nost, koja je pogodna za jednostavnije procesore sa samo jednom linijom za zahtevanje prekida, je da procesor automatski onemogu�i prekide pre po�etka izvršavanja rutine za opsluživanje prekida. Pošto se sadržaji registara broja�a naredbi i statusnog registra procesora sa�uvaju na stek, procesor izvršava operacije koje su ekvivalentne instrukciji za onemogu�avanje prekida. �esto je slu�aj da jedan bit u statusnom registru procesora, nazvan IE (interruptenable) ukazuje da li je prekid omogu�en ili ne. Stoga se operacije ekvivalentne sa onemogu�avanjem prekida svode na postavljanje IE bita u statusnom registru procesora na nulu. Kada se izvrši instrukcija povratka iz rutine za opsluživanje prekida, sadržaj statusnog registra procesora se restaurira sa steka, �ime IE bit ponovo biva postavljen na 1 i prekidi bivaju omogu�eni.• Tre�a mogu�nost je da procesor ima specijalnu liniju za zahtev za prekidom,kroz koju elektronska kola za rukovanje prekidom odgovaraju samo na vode�u ivicu signala. Za takvu liniju se kaže da ima ivicu-okida�. U tom slu�aju, procesor �e primiti samo jedan zahtev, bez obzira na to koliko je linija aktivirano. Dakle, nema opasnosti od višestrukih prekida niti potrebe da se eksplicitno onemogu�e prekidi po toj liniji.

Matemati�ki fakultet Mikrora�unari 20/[email protected]

Omogu�avanje i onemogu�avanje prekida

Pre razmatranja složenijih aspekata prekida, sumirajmo sekvencu doga�aja koji su uklju�eni u rukovanje zahtevom za prekid koji je stigao od datog ure�aja.

Ako pretpostavimo da su prekidi omogu�eni, scenario rada je slede�i:1. Ure�aj podiže zahtev za prekidom.2. Procesor prekida program koji trenutno izvršava.3. Prekidi bivaju onemogu�eni promenom kontrolnog bita u PS (osim u slu�aju

prekida sa ivicom-okida�em).4. Ure�aj se informiše da je zahtev prepoznat i on, kao odgovor, deaktivira

signal zahteva za prekid.5. Akcija koju zahteva prekid se izvršava izvršenjem rutine za opsluživanje

prekida.6. Prekidi bivaju omogu�eni i nastavlja se izvršavanje prekinutog programa.

Matemati�ki fakultet Mikrora�unari 21/[email protected]

Rukovanje sa više ure�aja

Razmotrimo situaciju u kojoj je ve�i broj ure�aja koji su sposobni da iniciraju prekide povezan na procesor. Kako su ti ure�aji operativno nezavisni, nema jasnog redosleda po kome �e oni generisati prekide. Stoga se javljaju slede�a pitanja:• Kako �e procesor prepoznati koji je ure�aj zahtevati prekid?• S obzirom da �e razli�iti ure�aji verovatno zahtevati razli�ite rutine za opsluživanje prekida, kako �e procesor da dobije po�etnu adresu odgovaraju�e rutine u svakom od slu�ajeva?•���������������������������������������������������������se opslužuje neki drugi prekid?• Kako �e se rukovati sa dva ili više simultanih zahteva za prekid?Kada prispe zahtev kroz zajedni�ku liniju za zahteve za prekid, potrebne su dodatne informacije kako bi se identifikovalo koji je konkretan ure�aj aktivirao liniju. Nadalje, ako dva ure�aja istovremeno aktiviraju liniju, mora biti omogu�eno da se razdvoji veza i da se izabere jedan od ta dva ure�aja �iji �e zahtev biti opslužen. Statusni registar ure�aja sadrži informaciju koje je potrebna za odre�ivanje da li je taj ure�aj zahtevao prekid. Naime, kada ure�aj podigne zahtev za prekid, on postavlja 1 u jednom bitu (tzv IRQ bitu) svog statusnog registra.

Matemati�ki fakultet Mikrora�unari 22/[email protected]

Rukovanje sa više ure�aja

Najprostiji na�in za identifikaciju prekidaju�eg ure�aja je da rutina za opsluživanje prekida “proziva”���� /I ure�aje koji su povezani na magistralu. Prvi ure�aj koji sa na�e prilikom prozivanja sa postavljenim IRQ bitom �e biti onaj ure�aj �iji se zahtev za prekidom opslužuje. Sada se odgovaraju�i potprogram poziva kako bi se obezbedila zahtevana usluga.Šema prozivanja se lako implementira. Njen glavni nedostatak je vreme koje se troši pri ispitivanju IRQ bitova svih ure�aja koji možda nisu zahtevali opsluživanje.

Da bi se smanjilo vreme potrošeno u procesu prozivanja, može se ustanoviti shema u kojoj se ure�aj koji zahteva prekid direktno predstavlja procesoru. U tom slu�aju, procesor odmah može da po�ne sa izvršavanjem odgovaraju�e rutine za opsluživanje prekida. Sheme rukovanja prekidima koje su zasnovane na ovom principu obi�no se ozna�avaju kao vektorski prekidi. Ure�aj koji zahteva prekid može da se identifikuje slanjem specijalnog koda procesoru, preko magistrale. Ovim je omogu�eno procesoru da identifikuje pojedina�ne ure�aje �ak i u slu�aju kada oni dele jedinstvenu liniju za zahteva za prekid. Kod (obi�no dužine 4-8 bitova) koji��������������������������že predstavljati informaciju o po�etnoj adresi rutine za opsluživanje prekida za taj ure�aj. Ostatak informacije o adresi rutine daje procesor.

Matemati�ki fakultet Mikrora�unari 23/[email protected]

Rukovanje sa više ure�aja

Ovakva shema implicira da rutina za opsluživanje prekida za dati ure�aj mora uvek po�injati od iste lokacije. Programer može dobiti odre�enu fleksibilnost ako u tu lokaciju smesti naredbu koja dovodi do skoka na odgovaraju�u rutinu. Kod velikog broja ra�unara se to radi automatski pomo�u mehanizma za rukovanje prekidima. Lokacija���������������������������������������������������smeštaj po�etne adrese rutine za opsluživanje prekida. Procesor pro�ita tu adresu, nazvanu vektor prekida, pa je u�ita u broja� naredbi. Vektor prekida jošmože sadržati i novu vrednost za statusni registar procesora.Kod najve�eg broja ra�unara, U/I ure�aji šalju kod vektora prekida kroz magistralu podataka, koriste�i kontrolne signale magistrale kako bi obezbedili da se ure�aji me�usobno ne preklapaju pri komunikaciji. Kada ure�aj pošalje zahtev za prekid, procesor možda ne�e biti spreman da odmah primi kod vektora prekida.� ����koji prekida mora da �eka kako bi smestio podatke u magistralu tek onda kada je procesor spreman da ih primi. Kada je procesor spreman da primi kod vektora prekida, on aktivira liniju za potvrdu prekida INTA (interrupt acknowledge). Tada U/I ure�aj odgovara slanjem svog koda vektora prekida i isklju�ivanjem signala INTR.

Matemati�ki fakultet Mikrora�unari 24/[email protected]

Rukovanje sa više ure�aja

Ve� je sugerisano da tokom izvršavanja rutine za opsluživanje prekida treba onemogu�iti prekide, kako bi se obezbedilo da zahtev od jednog ure�aja ne dovede do više od jednog prekida. Ista logika se koristi i kada je više ure�aja u pitanju, pa i tu izvršavanje konkretne rutine za opsluživanje prekida, kada jednom otpo�ne, uvek biva nastavljeno do završetka pre nego što procesor prihvati zahtev za prekid od nekog drugog ure�aja. Rutine za opsluživanje prekida su obi�no kratke i kašnjenje koje one prouzrokuju je prihvatljivo za najve�i broj jednostavnih ure�aja.Me�utim, za neke ure�aje, veliko kašnjenje koje se javlja kao odgovor na zahtev za prekid može dovesti do grešaka. Razmotrimo, na primer, ra�unar koji prati vreme koriš�enjem �asovnika. Tada je �asovnik ure�aj koji procesoru šalje zahteve za prekid u regularnim vremenskim intervalima. Za svaki od ovih zahteva, procesor izvršava kratku rutinu za opsluživanje prekida koja ažurira skup broja�a u memoriji. Da bi sistem korektno radio, potrebno je da kašnjenje usled odgovora na zahtev za prekidom koji dolazi od �asovnika bude malo u odnosu na interval izme�u dva uzastopna zahteva. Da bi se obezbedilo da ovaj zahtev bude zadovoljen u prisustvu drugih ure�aja koji zahtevaju prekid, može biti neophodno da se prihvati zahtev za prekid od �asovnika �ak i tokom izvršenja rutine za opsluživanje prekida koja je potekla od drugog ure�aja.

Page 5: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

5

Matemati�ki fakultet Mikrora�unari 25/[email protected]

Rukovanje sa više ure�aja

Prethodni primer sugeriše da U/I ure�aji treba da budu organizovani u strukturu sa prioritetima. Zahtev za prekid od ure�aja visokog prioriteta treba da bude prihva�en i dok procesor opslužuje neki drugi zahtev od ure�aja nižeg prioriteta.Da bi se implementirala organizacija sa više nivoa prioriteta, možemo dodeliti nivo prioriteta procesoru i taj nivo prioriteta može biti programski menjan. Nivo prioriteta procesora je, u stvari, nivo prioriteta programa koji se trenutno izvršava. Procesor prihvata prekide samo od onih ure�aja sa prioritetima koji su ve�i od njegovog trenutnog.Prioritet procesora je obi�no kodiran sa nekoliko bitova statusne re�i procesora. Taj prioritet može biti promenjen koriš�enjem instrukcija programa koje upisuju u statusni registar. Te instrukcije se nazivaju privilegovane instrukcije i one se mogu izvršavati samo dok je procesor u nadzorni�kom modu. Procesor je u nadzorni�kom modu samo kada izvršava rutine operativnog sistema. Na ovaj na�in, korisnikov program ne može ni slu�ajno ni namerno promeniti prioritet procesora i prekinuti sistemske operacije. Pokušaj da se izvrši privilegovana instrukcija dok se u korisni�kom modu dovodi do specijalnog tipa prekida koji se naziva izuzetak privilegije.

Matemati�ki fakultet Mikrora�unari 26/[email protected]

Rukovanje sa više ure�aja

Implementacija prioriteta prekida koriš�enjem individualnih linija za zahtev za prekid i linije za potvr�ivanje

Shema sa višestrukim prioritetima može da bude lako implementirana koriš�enjem odvojenih linija za zahtev za prekid i linija za potvrdu prekida za svaki od ure�aja, kao što je i prikazano na dijagramu. Svakoj od linija za zahtev za prekid je dodeljen drugi nivo prioriteta. Zahtevi za prekid koji se primaju preko ovih linija se šalju elektronskim kolima za arbitražu prioriteta kod procesora. Zahtev biva prihva�en samo ako ima viši nivo prioriteta od zadatka koji je trenutno dodeljen procesoru.

Matemati�ki fakultet Mikrora�unari 27/[email protected]

Rukovanje sa više ure�aja

Šeme za prioritet prekida

Razmotrimo sada problem simultanog prispe�a zahteva za prekid od dva ili više ure�aja. Procesor mora da ima neki mehanizam za odlu�ivanje ko �e biti prvi opslužen. Kod sheme prozivanja i kod sheme sa prioritetima, odgovor na ovo pitanje je jednostavan.Kada se koriste vektorski prekidi mora se obezbediti da samo jedan ure�aj bude izabran za slanje svog koda vektora prekida. �esto se koristi shema povezivanja ure�aja ulan�avanjem, kao što je prikazano na slici.

Matemati�ki fakultet Mikrora�unari 28/[email protected]

Rukovanje sa više ure�aja

Linija za zahtev za prekid, ozna�ena sa INTR, je zajedni�ka za sve ure�aje. Linija za potvr�ivanje prekida INTA je povezana na ulan�ani na�in, tako da INTA signal serijski propagira kroz ure�aje. Kada uvezani ure�aju podignu zahtev za prekid i aktivira se linija INTR, procesor odgovori postavljanjem INTA linije na 1. Taj signal biva primljen od ure�aja 1. Ure�aj 1 prosle�uje signal ure�aju 2 samo ako on nije zahtevao nikakav prekid. Ako je������1 zahtevao prekid, tada on blokira INTA signal i nastavi sa postavljanjem koda vektora prekida u magistralu podataka. Kao što vidimo, u ovakvom podešavanju ure�aj koji je elektronski najbliži procesoru ima najve�i prioritet, itd.Ovakva shema zahteva mnogo manje veza nego što je to slu�aj sa njenim prethodnikom. Prednost prethodnika tj. prioritetne sheme sa individualnim linijama je ta što ona dopušta procesoru da prihvati zahteve od pojedinih ure�aja, a da ignoriše druge – zavisno od prioriteta.Prethodne dve sheme mogu da se kombinuju i da tako oforme opštiju strukturu, koja je prikazana na slede�em slajdu. Tu su ure�aju organizovani u grupe i svaka grupa je povezana na drugom nivou prioriteta. Unutar grupe, ure�aji su povezani na ulan�ani na�in. Takva organizacija se koristi u velikom broju ra�unarskih sistema.

____

____

Matemati�ki fakultet Mikrora�unari 29/[email protected]

Rukovanje sa više ure�aja

Šeme za prioritet prekida

Matemati�ki fakultet Mikrora�unari 30/[email protected]

Kontrola zahteva ure�aja

Veoma je važno da se obezbedi da zahtevi za prekid generišu samo oni ure�aji koji se koriste od strane datog programa. Stoga nam je potreban mehanizam kod elektronskih kola interfejsa koji kontroliše da li ure�aju dopušteno da generiše zahtev za prekid.To se obi�no postiže pomo�u bita za omogu�avanje prekida u elektronskim kolima interfejsa ure�aja. Tako na primer, flegovi KEN i DEN u registrima CONTROL prvog dijagrama izvršavaju baš tu funkciju.Dakle, postoje dva nezavisna mehanizma za kontrolu zahteva za prekid. Na kraju ure�aja bit omogu�avanja prekida u kontrolnom registru. Na kraju procesora, bilo bit za obezbe�ivanje prekida u statusnom registru procesora, bilo struktura prioriteta odre�uju da li �e dati zahtev za prekid biti prihva�en.

Page 6: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

6

Matemati�ki fakultet Mikrora�unari 31/[email protected]

Kontrola zahteva ure�aja

Koriš�enje prekida za �itanje linije znakova sa tastature kroz registre

Matemati�ki fakultet Mikrora�unari 32/[email protected]

Izuzeci

Mehanizam prekida se, pored realizacije U/I operacija, koristi i u ve�em broju drugih situacija.

Termin izuzetak se �esto koristi za oznaku ma kog doga�aja koji je doveo do prekida. Stoga, U/I operacije predstavljaju samo jedan primer izuzetaka.Pored njih, postoje i druge vrste izuzetaka:• Oporavak od greške – kada procesor sam prekine progak ukoliko detektuje grešku ili neobi�an uslov.• Debagiranje – kada procesor radi u modu traga, izuzetak se dešava po izvršenju svake instrukcije, a program za debagiranje predstavlja rutinu za opsluživanje prekida. Ta�ke loma predstavljaju sli�nu osobinu i tu se program prekida samo na specifi�nim ta�kama koje je izabrao korisnik• Izuzetak privilegije – do njega dolazi kada procesor pokušava da izvrši privilegovanu instrukciju dok radi u korisni�kom modu.

Matemati�ki fakultet Mikrora�unari 33/[email protected]

Koriš�enje prekida kod operativnih sistema

Operativni sistem (OS) je odgovoran za koordinaciju svih aktivnosti u ra�unaru. OS veoma intenzivno koristi prekide radi izvršavanja U/I operacija i za komunikaciju sa korisni�kim programima i kontrolu njihovog izvršenja. Mehanizam prekida omogu�uje OS da dodeli prioritete, da se prebaci za izvršavanja jednog korisni�kog programa na drugi, da implementira karakteristike sigurnosti i zaštite i da koordinira U/I aktivnosti.OS sadrži rutine za opsluživanje prekida za sve ure�aje koji su povezani na ra�unar. Kada aplikativni program treba da izvrši ulaznu ili izlaznu operaciju, on ukaže na podatke koje treba preneti i zamoli oS da izvrši tu operaciju. OS privremeno suspenduje izvršavanje tog programa i izvrši zahtevanu U/I operaciju. Po završetku operacije, OS vra�e kontrolu aplikativnom programu.�����������kontrole izme�u OS i aplikativnog programa se realizuje preko prekida.Kod ra�unara koji imaju i korisni�ki i nadzorni�ki režim rada, procesor se prebacuje u nadzorni�ki režim u trenutku prihvatanja zahteva za prekid.Da bi ilustrovali interakciju izme�u aplikativnih programa i OS, razmotri�emo primer koji uklju�uje multitasking – mod rada procesora u kome procesor u isto vreme izvršava nekoliko korisni�kih programa. Uobi�ajena OS tehnika koja ovo omogu�uje je tzv. “seckanje vremena” (engl. “time slicing”).

Matemati�ki fakultet Mikrora�unari 34/[email protected]

Koriš�enje prekida kod operativnih sistema

Nekoliko rutina operativnog sistema

Matemati�ki fakultet Mikrora�unari 35/[email protected]

Koriš�enje prekida kod operativnih sistema

Nekoliko rutina operativnog sistema

Matemati�ki fakultet Mikrora�unari 36/[email protected]

Koriš�enje prekida kod operativnih sistema

Nekoliko rutina operativnog sistema

Page 7: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

7

Matemati�ki fakultet Mikrora�unari 37/[email protected]

Koriš�enje prekida kod operativnih sistema

Kada se startuje operativni sistem, izvršava se inicijalizaciona rutina, nazvana OSINIT. Pored ostalih stvari, ova rutina u�ita i odgovaraju�e vrednosti u lokacije vektora prekida u memoriji. Na primer, OSINIT u�ita po�etnu adresu rutine nazvane SCHEDULER u vektor prekida koji odgovara vremenskom prekidu. Stoga, na kraju svakog vremenskog odse�ka �asovnik generiše zahtev za prekid koji dovodi do izvršavanja ove rutine.

Program, zajedno sa informacijama koje opisuju teku�e stanje njegovog izvršavanja se od strane OS posmatra kao proces. Proces može biti u jednom od tri stanja:

1. izvršava se – ovo stanje zna�i da se upravo sada izvršava2. spreman je za izvršavanje – �eka da bude izabran za izvršavanje od strane

raspore�iva�a3. blokiran – iz nekog razloga nije spreman da nastavi sa izvršavanjem.SCHEDULER je rutina OS-a koja odre�uje koji �e se korisni�ki program izvršavati u

slede�em vremenskom odse�ku. Pri radu, on prvo sa�uva sve informacije potrebne radi nastavka izvršavanja programa A koji se do tada izvršavao. Sa�uvana informacija, nazvana stanje programa, obuhvata sadržaje registara, broja� naredbi i statusnu re� procesora. Potom rutina bira neki drugi program B koji je spreman za izvršavanje – restauriše (ranije sa�uvane) informacije koje se odnose na program B, pa izvršava instrukciju povratka iz prekida.

Matemati�ki fakultet Mikrora�unari 38/[email protected]

Koriš�enje prekida kod operativnih sistema

Na ovaj na�in je postignuto da u slede�em vremenskom odse�ku program B nastavi sa izvršavanjem, tj. realizovano je prebacivanje konteksta (engl. “context switch”) u drugi proces sposoban za izvršavanje.

Pretpostavimo da program A treba da pro�ita liniju sa ulaza. Umesto da samostalno izvrši operaciju, on �e zahtevati opsluživanje od OS. U tu svrhu, iskoristi�e stek ili registre procesora da OS-u prosledi informaciju koja sadrži zahtevanu operaciju,�U/I ure�aj i adresu bafera u podacima programa u koji se pro�itane linije trebaju smestiti. Potom izvršava softversku instrukciju prekida. Vektor prekida �e u tom slu�aju pokazivati na rutinu OSSERVICES.

Kao što se može videti, rutina OSSERVICES �e ispitati informacije na steku i inicirati odgovaraju�u operaciju pozivom odgovaraju�e rutine OS. U našem primeru, bi�e pozvana rutina IOINIT – ona je odgovorna za po�injanje U/I operacija.

Rutina IOINIT postavlja stanje procesa koji odgovara programu A na blokirano , kako bi raspore�iva�u stavila do znanja da u ovom trenutku program ne sme da nastavi sa radom. Potom ova rutina izvršava sve pripreme neophodne za izvršenje U/I operacije, a potom poziva rutinu koja izvršava U/I prenose.

Uobi�ajena praksa kod dizajna operativnih sistema je da se sav softver potreban za rad nekog ure�aja enkapsulira u samostalan modul, nazvan drajver ure�aja (engl. device driver). Takav modul se lako dodaje ili uklanja iz OS.

Matemati�ki fakultet Mikrora�unari 39/[email protected]

Koriš�enje prekida kod operativnih sistema

Pretpostavi�emo da se u našem primeru drajver ure�aja za tastaturu sastoji od dve rutine KBDINIT i KBDDATA. Sada konkretno IOINIT poziva rutinu KBDINIT, koja izvršava sve inicijalizacione operacije koje su zahtevane od ure�aja i njegovih elsktronskih�����. Rutina KBDINIT tako�e omogu�uje prekide kod ure�aja, tako što postavlja odgovaraju�e bitove u njihovim kontrolnim registrima, a potom se vra�a u IOINIT, koja se sama potom vra�a u OSSERVICES. Sada je tastatura spremna da u�estvuje u operacijama prenosa podataka i ona �e generisati prekid svaki put kada je taster pritisnut.

Po povratku iz OSSERVICES, rutina SCHEDULER bira drugi korisni�ki program za izvršavanje (jasno je da to ne može biti program A, jer je proces koji mu odgovara trenutno blokiran). Instrukcija povratka iz prekida, kao što je ranije istaknuto, tako�e omogu�i prekide, pa se sada mogu “hvatati” zahtevi za prekid koje šalje tastatura. Vektor prekida za ovaj prekid ukazuje na adresu rutine OS koja se naziva IODATA.

Budu�i da može biti više ure�aja povezanih na istu liniju za zahtevanje prekida, IODATA po�inje rad prozivanjem tih ure�aja, kako bi odredilo koji je me�u njima zahtevao uslugu. Potom rutina poziva odgovaraju�i drajver ure�aja da opsluži zahtev.

Matemati�ki fakultet Mikrora�unari 40/[email protected]

Koriš�enje prekida kod operativnih sistema

U našem slu�aju, drajver �e biti KBDDATA, koji prenosi jedan znak. Ako je taj znak CR, drajver �e tako�e i postaviti 1 u fleg END, kako bi informisao IODATA da je odgovaraju�e instrukcija kompletirana. U tom trenutku, rutina IODATA �e promeniti stanje procesa pridruženog programu A iz blokirano u sposobno za izvršavanje, tako da taj proces može da bude izabran za izvršavanje od strane raspore�iva�a u nekom vremenskom ise�ku u budu�nosti.

Matemati�ki fakultet Mikrora�unari 41/[email protected]

Struktura prekida kod ARM

Bajt najmanje težine kod statusnog registra procesora ARM

Procesor ARM ima jednostavan, ali istovremeno mo�an mehanizam za rukovanje prekidima. Dva izvora za izuzetke su spoljašnje linije za zahtevanje prekida IRQ i FIQ (“fast interrupt request”), jedan je softverska instrukcija za prekid SWI, a postoje i dva izvora prouzrokovana sa nekorektnim uslovima tokom izvršavanja –greška magistrale i pokušaj izvršenja nedefinisane instrukcije.

Prioritet je slede�i:1. Reset (najve�i prioritet)2. Greška podataka3. FIQ4. IRQ5. Greška u dohvatanju instrukcije6. Greška nedefinisane instrukcije

Matemati�ki fakultet Mikrora�unari 42/[email protected]

Struktura prekida kod ARM

Bitovi M4-M0 sa prethodnog dijagrama ukazuju u kom modu operacija se procesor nalazi. Ukupno postoji šest modova. To su korisni�ki mod i pet privilegovanih modova, po jedan za svaku vrstu izuzetka.

Kada se procesor prebaci u neki od tih razli�itih modova, on����������������������registara kojima program pristupa. Registri koji su pristupa�ni u svakom modu su R0-R7, R15 (broja� naredbi) i CSPR (statusni registar). U svim privilegovanim modovima, osim, FIQ, i����������8-R12 su tako�e pristupa�ni.

Oni registri koji zamenjuju registre procesora u korisni�kom modu nazivaju se bankirani registri.

Kada procesor prihvati prekid, on preduzima slede�e akcije:1. Sa�uva adresu povratka prekinutog programa u registru 14 odgovaraju�eg moda.

Ta�na sa�uvana vrednost zavisi od tipa izuzetka (zbog proto�nosti).2. Sa�uva sadržaj statusnog registra procesora CSPR u odgovaraju�i SPSR.3. Promeni bitove moda u CSPR u skladu sa tipom prekida, a za FIQ i IRQ još

postavi i odgovaraju�e bitove u CPSR i na taj na�in onemogu�i dalje prekide po toj liniji.

4. Sko�i na po�etak rutine za opsluživanje prekida koja po�inje od odgovaraju�e adrese u vektoru.

Page 8: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

8

Matemati�ki fakultet Mikrora�unari 43/[email protected]

Struktura prekida kod ARM

Registri kojima se pristupau razli�itim modovima rada

ARM procesora

Matemati�ki fakultet Mikrora�unari 44/[email protected]

Struktura prekida kod ARM

Adrese vektora prekida kod ARM procesora

Registri kojima se pristupa u razli�itim modovima rada ARM procesora

Matemati�ki fakultet Mikrora�unari 45/[email protected]

Struktura prekida kod ARM

Korekcija adresa tokom povratka iz prekida kod ARM

Matemati�ki fakultet Mikrora�unari 46/[email protected]

Struktura prekida kod ARM

ARM rutina za opsluživanje prekida koja �ita ulaznu liniju sa tastature – glavni program

Matemati�ki fakultet Mikrora�unari 47/[email protected]

Struktura prekida kod ARM

ARM rutina za opsluživanje prekida koja �ita ulaznu liniju sa tastature

Matemati�ki fakultet Mikrora�unari 48/[email protected]

Struktura prekida kod 68000

Statusni registar procesora 68000

Procesor 68000 ima osam nivoa prioriteta za prekide. Prioritet u kom u datom trenutku radi procesor se enkodira sa tri bita u statusnoj re�i procesora, gde 0 predstavlja najniži prioritet.�����������������������������������������������viši od prioriteta u kom procesor radi u datom trenutku, osim prioriteta 7 – zahtevi za prekid tog prioriteta se uvek prihvataju. Tu se radi o nemaskiraju�em prekidu sa ivicom-okida�em.

Po prihvatanju prekida, na stek se guraju PC i PS, pri �emu se registar A7 koristi kao pokaziva� steka. Za povratak iz rutine se koristi instrukcija RTE.

Procesor koristi vektorske prekide, ima ih 256, uz autovektor sposobnost (0-7).

Page 9: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

9

Matemati�ki fakultet Mikrora�unari 49/[email protected]

Struktura prekida kod 68000

Rutina za opsluživanje prekida procesora Motorola 68000 koja �ita ulaznu

liniju sa tastature

Matemati�ki fakultet Mikrora�unari 50/[email protected]

Struktura prekida kod Pentium-a

Kod IA-32 familije procesora, gde je Pentium primer, se koriste dve linije za zahtevanje prekida INTR i NMI. Zahtevi koji stignu preko linije NMI su uvek prihva�eni od strane procesora.

Pored spoljašnjih prekida, postoji i veliki broj doga�aja koji mogu izazvati izuzetak tokom izvršavanja programa. Oni uklju�uju nekorektne operacione kodove, greške pri deljenju, prekora�enja itd.

Pojava ma kog od ovih doga�aja dovodi do toga da procesor sko�i na izvršavanje rutine za opsluživanje prekida. Svakom od prekida ili izuzetaka se dodeljuje broj prekida. U slu�aju signala sa INTR, U/I ure�aj šalje broj vektora preko magistrale kada se potvrdi zahtev za prekidom. Za sve ostale vrste izuzetaka, broj vektora je prethodno fiksno dodeljen. Procesor odre�uje po�etnu adresu rutine za opsluživanje prekida na osnovu broja vektora i tabele nazvane tabela za opis prekida (IDT - Interrupt Description Table).

Prate�i �ip za Pentium procesor se naziva Napredni programabilni kontroler prekida (APIC – Advanced Programmable Interrupt Controler). Raznovrsni U/I ure�aji se preko ovog �ipa povezuju sa procesorom. Kontroler prekida implementira strukturu prioriteta izme�u tim razli�itim ure�ajima i šalje procesoru odgovaraju�i broj ure�aja za svaki ure�aj.

Matemati�ki fakultet Mikrora�unari 51/[email protected]

Deo statusnog registra procesora Pentium

Struktura prekida kod Pentium-a

elije statusnog registra procesora, nazvanog EFLAGS, koje se odnose na sistem prekida i izuzetke su prikazane na slede�em dijagramu.

Kada je IF=1, tada zahtevi za prekid preko INTR linije bivaju prihva�eni. elija TF omogu�uje pra�enje (tracing) prekida i njihovo pra�enje kroz instrukcije.Procesor Pentium ima sofisticiranu strukturu privilegija, gde se razli�iti delovi

operativnog sistema izvršavaju na jednom od �etiri nivoa privilegije. Na svakom od ovih nivoa se koriste razli�iti segmenti adresnog prostora procesora i prebacivanje sa jednog nivoa na drugi uklju�uje ve�i broj provera koje se implementiraju mehanizmom nazvanom kapija. Ovde �emo razmotriti samo jednostavan slu�aj.

Matemati�ki fakultet Mikrora�unari 52/[email protected]

Kada je zahtev za prekid primljen i kada do�e do izuzetka, procesor preduzima slede�e akcije:

1. Gurne na stek (na koji pokazuje registar ESP) statusni registar procesora (EFLAGS), registar teku�eg segmenta (CS) i pokaziva� instrukcije (EIP).

2. U slu�aju izuzetka koji proizilazi iz nekorektnih uslova izvršavanja, on gura na stek kod koji opisuje uzrok izuzetka.

3. Ako je to potrebno, briše odgovaraju�i fleg za obezbe�ivanje prekida IF registra EFLAGS, i na taj na�in se onemogu�uju prekidi od istog izvora.

4. Dohvata polaznu adresu rutine za opsluživanje prekida iz tabele za opis prekida (IDF) koja je zasnovana na broju vektora prekida i u�itava tu vrednost u EIP, pa nastavlja izvršavanje.

Posle opsluživanja zahteva za prekid, rutina za opsluživanje prekida se vra�a na prekinuti program koriste�i instrukciju IRET. Ta instrukcija sa steka skida ranije smeštene vrednosti EIP, CS i EFLAGS i na taj na�in vrši restauraciju tih registara.

Kao i kod potprograma, rutina za opsluživanje prekida može na steku da �uva vrednosti registara ili lokalne promenljive.

Struktura prekida kod Pentium-a

Matemati�ki fakultet Mikrora�unari 53/[email protected]

Struktura prekida kod Pentium-a

Rutina za opsluživanje prekida procesora Pentium koja �ita ulaznu liniju sa tastature – glavni program

Matemati�ki fakultet Mikrora�unari 54/[email protected]

Struktura prekida kod Pentium-a

Rutina za opsluživanje prekida procesora Pentium koja �ita ulaznu liniju sa tastature

Page 10: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

10

Matemati�ki fakultet Mikrora�unari 55/[email protected]

Prethodno razmatranje se koncentrisalo na prenos izme�u procesora i U/I ure�aja. Kada se koriste prekidi, na na�in koji je prethodno opisano, postoje zna�ajne dodatne operacije koje se odnose na �uvanje i restauriranje broja�a naredbe i drugih statusnih informacija.

Da bi se preneli blokovi velike dužine, koristi se alternativni pristup. U tom smislu, može se obezbediti specijalna kontrolna jedinica koja omogu�uje direktan prenos bloka podataka izme�u spoljašnjeg ure�aja i glavne memorije – bez potreba za neprekidnim intervencijama procesora. Taj pristup se naziva direktan pristup memoriji (DMA – direct memory access).

DMA prenos izvršavaju specijalna kontrolna kola koja su deo U/I interfejsa. Ta kola se ozna�avaju nazivom DMA kontroler. DMA kontroler za svaku prenesenu re�obezbedi memorijsku adresu i sve signale magistrale koji kontrolišu prenos podataka. Budu�i da se koristi za prenos bloka podataka, jasno je da DMA kontroler mora da uve�ava memorijsku adresu za uzastopne re�i i voditi ra�una o broju izvršenih prenosa.

Iako DMA kontroler može da prenosi podatke bez intervencije procesora, njegov rad mora da bude pod kontrolom programa koji izvršava procesor. Da bi se inicirao prenos bloka re�i, ��������������������etnu adresu, broj re�i u bloku i smer prenosa.

Direktan pristup memoriji

Matemati�ki fakultet Mikrora�unari 56/[email protected]

Kada DMA kontroler primi informacije od procesora, on tada po�ne sa izvršavanjem zahtevane operacije. Po prenosu �itavog bloka podataka, kontroler informiše procesor time što podiže signal za prekid. Tokom izvršavanja DMA prenosa, program koji je zahtevao prenos ne može nastaviti sa radom, ali procesor u tom periodu može izvršavati instrukcije nekog drugog programa. Tek kada se prenese ceo blok podataka, procesor se može vratiti na izvršavanje programa koji je zahtevao prenos.

U/I operacije se uvek izvršavaju od strane operativnog sistema ra�unara, kao odgovor na zahtev koji dolazi od aplikativnog programa. OS je tako�e odgovoran i za suspendovanje izvršenja jednog programa i startovanje drugog. Tako, ako U/I operacija uklju�uje DMA, tada OS prebacuje program koji je zahtevao prenos u stanje blokiran, inicijalizuje DMA operaciju i po�inje sa izvršavanjem drugog programa. Kada se prenos okon�a, DMA kontroler informiše procesor tako što šalje zahtev za prekid. Kao odgovor na taj zahtev, OS prebacuje suspendovan program u stanje sposoban za izvršavanje, kako bi na taj na�in bio u mogu�nosti da od strane raspore�iva�a bude izabran za nastavak izvršavanja.

Direktan pristup memoriji

Matemati�ki fakultet Mikrora�unari 57/[email protected]

Direktan pristup memoriji (DMA)

Registri kod DMA interfejsa

Slede�a shema prikazuje registre DMA kontrolera kojima pristupa procesor kako bi inicirao operaciju prenosa. Bit R/W statusno-kontrolnog registra odre�uje pravac prenosa.

Kada DMA kontroler kompletira prenos bloka podataka i kada je spreman za prijem nove komande, tada se fleg Done postavlja na 1.

Kada je IE fleg 1, to dovodi da kontroler podigne izuzetak po kompletiranju prenosa bloka podataka.

Kontroler postavlja bit IRQ na 1 u situacijama kada zahteva prekid.

Statusni registar još može biti koriš�en za �uvanje ostalih informacija, npr. Da li je transfer uspešno izvršen ili je došlo do greški.

Matemati�ki fakultet Mikrora�unari 58/[email protected]

Direktan pristup memoriji (DMA)

Koriš�enje DMA kontrolera u ra�unarskom sistemu

Slede�a shema predstavlja primer kako se može koristiti DMA kontroler. DMA kontroler povezuje mrežu velike brzine na magistralu. Disk kontroler, koji kontroliše dva diska,��������������������������!"���������������!"�kanala. Registri koji su potrebni za smeštaj memorijske adrese, broj re�i itd. su duplicirani, tako da se jedan skup registara može koristiti za jedan od ure�aja.

Matemati�ki fakultet Mikrora�unari 59/[email protected]

Pristup memoriji od strane procesora i DMA kontrolera su isprepleteni. Zahtevi za koriš�enje magistrale od DMA ure�aja uvek dobiju ve�i prioritet nego zahtevi od procesora. Me�u razli�itim DMA ure�ajima, najve�i prioritet je dat periferijskim ure�ajima velike brzine, kao što je hard disk, veoma brzim mrežnim interfejsima ili ure�ajima za grafi�ki prikaz.

S obzirom da najve�i broj ciklusa za pristup memoriji poti�e od procesora, kaže se da DMA kontroler “krade” memorijske cikluse od procesora. Stoga se tehnika prepletanja obi�no naziva i kra�a ciklusa.

Alternativno, može se obezbediti da DMA kontroler ima ekskluzivan pristup glavnojmemoriji za prenos bloka podataka bez prekidanja. To se naziva blokovski ili rafalni mod.

Najve�i broj DMA kontrolera sadrži i bafer za smeštaj podataka.Na primer, kod mrežnih interfejsa obi�no DMA kontroler �ita blok podataka iz memorije i smešta ih u svoj ulazni bafer. Ovaj prenos se vrši u rafalnom modu, brzinom koja je odgovaraju�a za memoriju i magistralu. Potom se podaci iz bafera prenose kroz mrežu brzinom koja odgovara mreži.

Može do�i do konflikta ako procesor i DMA kontroler (ili dva DMA kontrolera) istovremeno pokušavaju da koriste magistralu kako bi pristupili glavnoj memoriji.Da bi se razrešio ovakav konflikt, implementira se procedura arbitraže.

Direktan pristup memoriji

Matemati�ki fakultet Mikrora�unari 60/[email protected]

Ure�aj kome se dopusti da u datom trenutku inicira prenos podataka na magistrali naziva se gazda magistrale (bus master). Kada gazda magistrale otpusti kontrolu nad magistralom, neki drugi ure�aj može da dobije taj status.

Arbitraža magistrale�����������������������e ure�aj slede�i da postane gazda magistrale, odnosno odre�ivanja na koga �e se preneti “gazdovanje”�magistralom. To odre�ivanje uzima u obzir potrebe razli�itih ure�aja tako što uspostavlja sistem prioriteta za dobijanje pristupa magistrali.

Postoje dva pristupa arbitraži magistrale: centralizovani i distribuisani.U centralizovanoj arbitraži, jedinstveni arbitar magistrale izvršava zahtevanu

arbitražu. Kod distribuisane arbitraže, svi ure�aji u�estvuju u izboru slede�eg gazde

magistrale.

Arbitraža magistrale

Page 11: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

11

Matemati�ki fakultet Mikrora�unari 61/[email protected]

Centralizovana arbitraža

Jednostavno odlu�ivanje za arbitražu magistrale koriš�enjem ulan�avanja

U ovom slu�aju arbitar magistrale može biti procesor ili odvojena jedinica koja je povezana na magistralu. Slede�a slika opisuje konfiguraciju u kojoj procesor sadrži elsktronska kola za arbitražu. U takvom slu�aju, obi�no je procesor gazda sve dok ne dodeli prava gazdovanja magistralom nekom od DMA kontrolera.

Matemati�ki fakultet Mikrora�unari 62/[email protected]

Centralizovana arbitraža

Sekvenca signala tokom prenosa gazdovanja magistralom za ure�aje sa prethodnog dijagrama

Slede�i vremenski dijagram prikazuje sekvencu doga�aja za ure�aje sa prethodnog dijagrama kada DMA kontroler 2 zahteva i dobjja da gazduje nad magistralom, a kasnije završi sa gazdovanjem.

Matemati�ki fakultet Mikrora�unari 63/[email protected]

Prethodni dijagram centralizovane arbitraže je prikazao samo jedno ulan�avanje. Isto kao i kod višestrukih zahteva za prekid, i ovde je mogu�e oformiti nekoliko parova ovakvih signala, tj. nekoliko ovakvih ulan�avanja DMA kontrolera, �ime se postiže ve�a fleksibilnost u odre�ivanju redosleda po kom �e biti opsluživani zahtevi prispeli sa razli�itih ure�aja.

Elektronska kola arbitera obezbe�uju da u datom trenutku samo jedan zahtev dobije pristup, u skladu sa prethodno odre�enom shemom. Na primer, ako postoje �etiri linije za zahtev BR1 do BR4, fiksirana shema prioriteta može postaviti da BR1 ima najve�i prioritet, a BR4 najmanji. Alternativno se može koristiti shema rotiraju�ih����������, kako bi se svim ure�ajima dala jednaka šansa da budu opsluženi. Rotiraju�i prioritet bi zna�io da po odobravanju zahteva koji je došao sa linije BR1 redosled prioriteta postaje 2,3,4,1.

Centralizovana arbitraža

Matemati�ki fakultet Mikrora�unari 64/[email protected]

Distribuisana arbitraža zna�i da svi ure�aji koji �ekaju na koriš�enje magistrale imaju jednaku odgovornost u izvršavanju procesa arbitraže, bez koriš�enja centralnog arbitra.

Dijagram na slede�em slajdu pokazuje primer sheme distribuisane arbitraže: Svakom ure�aju je dodeljen 4-bitni identifikacioni broj. Kada jedan ili više ure�aja zahteva magistralu, ti ure�aji postavljaju signal za po�etak arbitraže i postavljaju svoje identifikacione brojeve na �etiri linije sa otvorenim kolektorom ARB0 do ARB3. Pobednik se bira kao rezultat interakcije izme�u signala koji su preneseni kroz ove linije od strane svih zainteresovanih. Kao izlaz ovako povezanih linija je kod koji predstavlja najviši ID broj.

Pretpostavimo da dva ure�aja A i B imaju kodove 0101 i 0110. Kod koji se dobija kao rezultat je 0111. Svaki od ure�aja upore�uje obrazac na linijama arbitraže i svoju identifikaciju, po�ev od bitova ve�e težine. Ako ure�aj detektuje razliku na nekoj bitovnoj poziciji, on onemogu�i sopstveni drajver na toj poziciji i za sve bitove manje težine, što se postiže postavljanjem nula na tim ulaznim linijama.

Decentralizovana arbitraža nudi višu pouzdanost, jer operacije na magistrali ne zavise od jednog ure�aja. Predložene su i u praksi koriš�ene mnoge sheme koje implementiraju distribuisanu arbitražu.

Distribuisana arbitraža

_____ _____

Matemati�ki fakultet Mikrora�unari 65/[email protected]

Distribuisana arbitraža

Shema distribuisanearbitraže

Matemati�ki fakultet Mikrora�unari 66/[email protected]

Sinhronizovana magistrala

Vremenski dijagram prenosa ulaza kod sinhronizovane magistrale

Page 12: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

12

Matemati�ki fakultet Mikrora�unari 67/[email protected]

Procesor, memorija i U/I ure�aji su povezani preko zajedni�ke magistrale, �ija je primarna funkcija da omogu�i komunikaciju radi prenosa podataka. Magistrala uklju�uje i linije potrebne za podršku prekida i arbitraže.

Ovde �e biti razmotrene glavne karakteristike protokola magistrale koji se koriste za prenos podataka. Protokol magistrale je skup pravila koji rukovodi ponašanjem razli�itih ure�aja povezanih na magistralu – kada smestiti informaciju na magistralu, postaviti kontrolne signale, itd.

Linije magistrale koje se koriste radi prenosa podataka se grupišu u tri grupe: linije podataka, adresne linije i kontrolne linije.

Kontrolni signali odre�uju da li se izvršava operacija �itanja ili upisa. U tu svrhu se obi�no koristi jedan signal, R/W signal.

Kontrolni signali magistrale takoše nose i vremenske informacije, kojima se specificiraju vremenski intervali tokom kojih procesor i U/I ure�aji mogu da smeste podatke na magistralu ili prime podatke sa magistrale. Razvijen je veliki broj shema za postavljanje vremena prenosa podataka preko magistrale. Te sheme se mogu podeliti u dve grupe: kao sinhrone ili asinhrone����.

Gazda magistrale je ure�aj koji inicira prenos podataka, pa se on stoga još����������inicijator. Ure�aj sa kojim inicijator komunicira se ozna�ava kao sluga ili ciljni ure�aj.

Magistrala

_

Matemati�ki fakultet Mikrora�unari 68/[email protected]

Sinhronizovana magistrala

Kod ove magistrale svi ure�aji izvode vremenske informacije iz zajedni�ke linije �asovnika. Pulsevi jednake dužine na toj liniji definišu vremenske intervale.

U najprostijem obliku sinhronizovane magistrale, svaki od ovih intervala se sastoji od ciklusa magistrale tokom koga se izvrši jedan prenos podataka. To je ilustrovano shemom na slede�em slajdu.

Adresne linije i linije podataka na dijagramima koji slede su prikazane istovremeno i kao visoke i kao niske. Ovo je uobi�ajena konvencija, kojom se ukazuje da su nivoi napona na nekim od linija visoki, a da su na drugim niski, u zavisnosti od konkretne adrese ili obrasca podataka koji se prenosi. Linije ukrštanja ozna�avaju pozicije na kojima se obrasci menjaju.

U ovom scenariju, na kraju ciklusa �asovnika, gazda “blicne” podatke koji se nalaze u linijama podataka i smesti ih u svoj ulazni bafer (ako se radi o �itanju).

Matemati�ki fakultet Mikrora�unari 69/[email protected]

Sinhronizovana magistrala

Detaljni vremenski dijagram prenosa ulaza kod sinhronizovane magistrale

Matemati�ki fakultet Mikrora�unari 70/[email protected]

Sinhronizovana magistrala sa više ciklusa

Prethodno opisan scenario karakteriše jednostavan dizajn,���������������������enja. Budu�i da transfer mora da se okon�a tokom jednog ciklusa �asovnika, period ciklusa mora biti dovoljno dug da se uklopi i u najduža kašnjenja na magistrali i za najsporije ure�aje. Ovo dovodi do prinude da svi ure�aji moraju da rade brzinom najsporijeg me�u njima. Nadalje, procesor ne može odrediti da li je ciljni ure�aj stvarno odgovorio – on jednostavno pretpostavi da jeste.

Da bi se prevazišla ova ograni�enja, najve�i broj ure�aja uklju�uje kontrolne signale koji predstavljaju odgovor od ure�aja. Ovi signali informišu gospodara da je sluga prepoznao svoju adresu i da je spreman za u�eš�e u operaciji prenosa podataka. Ovim postaje mogu�e i podešavanje perioda prenosa podataka, kako bi se uklopio u potrebe ure�aja koji u�estvuju u prenosu. Radi uproš�enja ovog procesa, koristi se signal visoke frekfencije, tako da se kompletan ciklus prenosa podataka raširi preko nekoliko ciklusa �asovnika. Sada narano postae mogu�e da se broj potrebnih ciklusa �asovnika razlikuje od ure�aja do ure�aja.

Matemati�ki fakultet Mikrora�unari 71/[email protected]

Sinhronizovana magistrala sa više ciklusa

Prenos sa ulaza koriš�enjem višestrukih ciklusa �asovnika

Matemati�ki fakultet Mikrora�unari 72/[email protected]

Asinhrona magistrala

Alternativna shema za kontrolisanje prenosa podataka na magistrali se zasniva na rukovanju (handshaking)������������������. Koncept rukovanja je generalizacija prethodne ideje, samo što je sada zajedni�ki sat zamenjen dvema linijama za kontrolu vremena Master-ready i Slave-ready.

U principu, prenos podataka koji kontroliše protokol rukovanja je slede�i: gazda smesti adresu i komandne informacije na magistralu. Potom on svim ure�ajima ukaže na to tako što aktivira liniju Master-ready. To dovede da svi ure�aji na magistrali dekodiraju adresu. Izabrana sluga izvrši zahtevanu operaciju i informiše procesor o završetku tako što aktivira liniju Slave-ready. Gazda �eka da bude postavljen signal Slave-ready pre nego što ukloni svoje signale sa magistrale. U slu�aju operacija �itanja, gazda tada i “blicne” podatke u ulazni bafer.

Page 13: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

13

Matemati�ki fakultet Mikrora�unari 73/[email protected]

Asinhrona magistrala

Kontrola rukovanja prenosa podataka tokom ulazne operacije

Matemati�ki fakultet Mikrora�unari 74/[email protected]

Asinhrona magistrala

Kontrola rukovanja prenosa podataka tokom izlazne operacije

Matemati�ki fakultet Mikrora�unari 75/[email protected]

Razmatranje rešenja

Mnoge varijacije prethodno opisanih tehnika su našle primenu kod komercijalnih ra�unara. Na primer, magistrale procesora familije 68000 imaju dva moda rada –asinhroni i sinhroni.

Izbor konkretnog dizajna je uslovljen mnogobrojnim kompromisima, kao što su:• Jednostavnost interfejsa ure�aja• Sposobnost prilago�avanja interfejsima ure�aja koji u svoj rad uklju�uju razli�ite

koli�ine kašnjenja• Ukupno zahtevano vreme za transfer kroz magistralu• Sposobnost detekcije grešaka koje nastaju usled adresiranja nepostoje�eg

ure�aja ili usled lošeg funkcionisanja interfejsa.Glavna prednost asinhrone magistrale je to što proces rukovanja eliminiše potrebu za

sinhronizacijom �asovnika pošiljaoca i primaoca, a na taj na�in se uproš�ava dizajn vremenske skale. Kada se ova kašnjenja promene, recimo zbog promene u optere�enju kada se dodaju ili oduzmu elektronska kola interfejsa, vremenska skala prenosa podataka se automatski podešava na osnovu novih uslova.

Kod sinhronizovane magistrale, elektronska kola �asovnika moraju biti pažljivo dizajnirana kako bi se obezbedila korektna sinhronizacija, pa kašnjenja moraju biti držana u okviru striktnih granica.

Matemati�ki fakultet Mikrora�unari 76/[email protected]

Razmatranje rešenja

Brzina prenosa podataka kod asinhrone magistrale koja je kontrolisana sa potpunim rukovanjem je ograni�ena sa �injenicom da svaki prenos podataka uklju�uje dva dvosmerna kašnjenja propagiranja signala (odnosno �etiri kašnjenja od-kraja-do-kraja). Kod sinhronizovanih magistrala, perioda �asovnika treba da uklopi samo jedno kašnjenje u propagiranju signala od-kraja-do kraja. Stoga se kod ove vreste magistrale postižu ve�e brzine.���������������������������������, koriste se dodatni ciklusi �asovnika. Najve�i broj današnjih veoma brzih magistrala koristi upravo ovaj pristup.

Matemati�ki fakultet Mikrora�unari 77/[email protected]

Elektronska kola U/I interfejsa

U/I interfejs se sastoji od elektronskih kola koja su neophodna za povezivanje U/I�ure�aja na magistralu ra�unara.

• Na jednoj strani interfejsa ure�aja imamo signale magistrale za adrese, podatke i kontrolu.

• Na drugoj strani imamo put podataka sa pridruženim kontrolama kojim se prenose podaci izme�u interfejsa i U/I ure�aja. Ta strana interfejsa se naziva port i port može biti paralelni ili serijski.

Paralelni port simultano prenosi podatke po grupama bitova – obi�no 8 ili 16. Serijski port šalje ili prima jedan bit u jednom vremenskom trenutku. Komunikacija sa magistralom je ista za oba formata – konverzija iz paralelnog u serijski format i obratno se realizuje u okviru elektronskih kola interfejsa.

U slu�aju paralelnog porta, veza izme�u ure�aja i ra�unara koristi konektor sa ve�im brojem iglica (pin) i kabl sa isto toliko žica,koje su obi�no postavljene u obliku kaiša. Elektronska kola na oba kraja su relativno jednostavna i nema�����������konverziju izme�u paralelnog i serijskog formata. Ovakva struktura je pogodna za ure�aje koji su fizi�ki blizu ra�unaru.

Za ve�a rastojanja javlja se ranije opisan problem “proklizavanja” vremena. Stoga je serijski format mnogo pogodniji i finansijski povoljniji u slu�ajevima kada se koriste duga�ki kablovi.

Matemati�ki fakultet Mikrora�unari 78/[email protected]

Elektronska kola U/I interfejsa

Pre razmatranja primera konkretnih elektronskih kola interfejsa,����������#������ /I interfejsa:

1. Obezbe�uje bafer za smeštaj bar jedne re�i podataka2. Sadrži statusne flegove kojima može da pristupi procesor, kako bi odredio da li je

bafer pun (pri �itanju) ili prazan (pri pisanju)3. Sadrži elektronska kola za dekodiranje adresa kako bi se odredilo pri adresiranju

od strane procesora.4. Generiše odgovaraju�e vremenske signale koji su zahtevani od strane shema za

kontrolu magistrale5. Izvršava sve potrebne konverzije formata koje mogu biti neophodne pri��������

podataka izme�u magistrale i U/I ure�aja (na primer, konverzija serijskog u paralelno i obratno u slu�aju serijskog porta)

Page 14: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

14

Matemati�ki fakultet Mikrora�unari 79/[email protected]

Paralelni port

Veza tastature i procesora

Dijagram prikazuje hardverske komponente koje su neophodne za povezivanje tastature na procesor. Tipi�na tastatura se sastoji od mehani�kih prekida�a koji su normalno otvoreni. Kada se pritisne taster, njegov prekida� se zatvara i put za elektri�ni signal je postavljen. Signal se detektuje od strane elektronskog kola enkodera, koji generiše ASCII kod za odgovaraju�i znak.

Pri pritisku na taster javlja se efekat odskakivanja, koji mora biti eliminisan. To se može posti�i na dva na�ina: softverski i hardverski (kao na dijagramu).

Matemati�ki fakultet Mikrora�unari 80/[email protected]

Paralelni port

Izlaz iz enkodera se sastoji od bitova koji predstavljaju enkodirani znak, kao i od jednog kontrolnog signala, ozna�enog sa Valid, koji ukazuje da je taster bio pritisnut. Ova informacija se šalje elektronskim kolima interfejsa. Interfejs sadrži registar podataka DATAIN i statusni fleg SIN. Kada korisnik pritisne taster, signal Valid se sa 0 promeni u 1, što dovodi do toga da se ASCII kod u�ita u DATAIN i da se SIN postavi na 1. kada procesor pro�ita sadržaj registra DATAIN, fleg SIN biva ponovo obrisan, tj. postavljen na 0.

Elektronska kola interfejsa su povezana na asinhronu magistralu, na kojoj je prenos kontrolisan signalima rukovanja Master-ready i Slave-ready. Tre�a kontrolna linija, R/W razlikuje prenose pri �itanju i upisu.

Matemati�ki fakultet Mikrora�unari 81/[email protected]

Paralelni port

Slede�i dijagram prikazuje elektronska kola za ulazni interfejs. Izlazne linije registra DATAIN su povezane na linije podataka magistrale preko drajvera sa tri stanja, koji biva uklju�en kada procesor izda naredbu �itanja pra�enu adresom koja bira baš taj registar. Signal SIN se generiše od strane elektronskih kola statusnog flega. I ovaj signal se tako�e šalje na magistrali preko drajvera sa tri stanja. On je povezan na bit D0, što zna�i da �e se pojaviti kao bit 0 u statusnom registru. Ostali bitovi u ovom registru ne sadrže validne informacije.

Adresni dekoder se koristi za izbor interfejsa ulaza na osnovu viših 31 bita od 32-bitne adrese koja odgovara adresi dodeljenoj tom interfejsu. Adresni bit A0 odre�uje da li da se �ita statusni registar ili registar podataka kada je aktivan signal rukovanja Master-ready. Kontrolano rukovanje se postiže tako što se signal Slave-readyaktivira kada je bilo Read-status bili Read-data jednako sa 1.

Matemati�ki fakultet Mikrora�unari 82/[email protected]

Paralelni port

Elektronska kola ulaznog interfejsa

Matemati�ki fakultet Mikrora�unari 83/[email protected]

Paralelni port

Mogu�a implementacija statusnog flega data je na slede�em dijagramu. D flip-flop sa ivicom-okida�em se postavlja na 1 preko podižu�e ivice signalne linije

Valid. Ovaj doga�aj menja stanje NOR latch-a i na taj na�in signal SIN postaje 1. Stanje

latch-a ne sme da se promeni tokom procesorovog o�itavanja�$%&-a. Stoga, elektronska kola obezbe�uju da SIN može biti postavljen samo kada je Master-ready signal jednak 0.

I flip-flop i latch se resetuju na 0 u trenutku kada se signal Read-data postavi na1 da bi se pro�itao DATAIN registar.

Matemati�ki fakultet Mikrora�unari 84/[email protected]

Paralelni port

Elektronska kola za realizaciju statusnog flega sa prethodnog dijagrama

Page 15: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

15

Matemati�ki fakultet Mikrora�unari 85/[email protected]

Paralelni port

Razmotrimo izlazni interfejs koji može biti koriš�en za povezivanje izlaznog ure�aja, kao što je štampa�, na procesor. Takva situacija je prikazana na dijagramu koji sledi.

Štampa� radi pod kontrolom signala mehanizma rukovanja, ozna�enih sa Valid i Idle, na na�in koji je sli�an asinhronom radu magistrale sa signalima Master-ready i Slave-ready. Kada bude spreman da primi znak koji �e da štampa, štampa�postavlja signal Idle. Elektronska kola interfejsa tada mogu smestiti novi karakter na linije podataka i aktivirati signal Valid. Kao odgovor na to, štampa� otpo�inje sa štampom tog znaka i poništava Idle signal, što zauzvrat dovodi do toga da interfejs štampa�a deaktivira signal Valid.

Interfejs sadrži registar podataka, ozna�en sa DATAOUT i statusni fleg SOUT. Fleg SOUT biva postavljen na 1 kada je štampa� spreman za prijem novog znaka, a obrisan (postavljen na 0) kada procesor u�itava novi znak u DATAOUT.

Matemati�ki fakultet Mikrora�unari 86/[email protected]

Paralelni port

Veza štampa�a i procesora

Matemati�ki fakultet Mikrora�unari 87/[email protected]

Paralelni port

Elektronska kola izlaznog interfejsa – najve�a razlika u odnosu na prethodno opisani dizajn ulaznog interfejsa je postojanje logi�kih

kola za kontrolu rukovanja

Matemati�ki fakultet Mikrora�unari 88/[email protected]

Paralelni port

Kombinovana U/I kola interfejsa – u ovom slu�aju, sam interfejs je

izabran na osnovu 30 bitova ve�e težine u adresi. Adresni bitovi A1 i A0 služe za izbor

jedne od tri adresibilne lokacije interfejsa – dva registra

podataka i statusnog registra. Statusni registar na poziciji 0 sadrži fleg SIN, a na poziciji 1 fleg SOUT. Budu�i da se na te

lokacije u registrima �esto referiše kao na registre, koriste se oznake RS1 i RS0 (Registerselect) da bi ozna�ili izabrane

registre.

Matemati�ki fakultet Mikrora�unari 89/[email protected]

Paralelni port

Prethodno opisano sekvencijalno kolo sadrži odvojene ulazne i izlazne linije za vezu sa U/I������. Ako se kreira interfejs u kome je tok podataka kroz linije podataka dvosmeran, tada �e se dobiti fleksibilniji paralelni port.

Slede�i dijagram prikazuje sekvencijalno kolo interfejsa opšte namene, koje može biti konfigurisano na razli�ite na�ine.

Linije podataka P1 do P7 mogu biti koriš�ene i za ulaz i za izlaz. Da bi se obezbedila pove�ana fleksibilnost, kolo omogu�uje da, pod programskom kontrolom, neke od linija služe za ulaz, a da druge služe za izlaz.

Registar DATAOUT je povezan na ove linije preko drajvera sa tri stanja, koji bivaju kontrolisani od strane registra za smer podataka, ozna�enog sa DDR. Procesor može upisati 8-bitni obrazac u DDR. Ako je vrednost DDR na fiksiranom bitu 1, odgovaraju�a linija podataka se ponaša kao izlazna linija. U suprotnom, ta linija se ponaša kao ulazna linija.

Dve linije, ozna�ene sa C1 i�'2, su obezbe�ene radi kontrole interakcije izme�u U/I interfejsa i ure�aja kome taj interfejs služi. I ove linije su tako�e programabilne. Linija C2 je dvosmerna kako bi bili omogu�eni razli�iti modovi signaliziranja, uklju�uju�i i rukovanje.

Matemati�ki fakultet Mikrora�unari 90/[email protected]

Paralelni port

Postupak povezivanja je slede�i: linije Ready i Accept su linije za kontrolu rukovanja na strani prema procesoru, pa stoga one treba da budu povezane sa linijama Master-ready i Slave-ready magistrale. Ulazni signal My-address treba biti povezan sa izlazom iz adresnog dekodera koji prepoznaje adrese dodeljene ovom interfejsu. Postoje i tri linje za izbor registra, što omogu�uje da postoji do 8 registara u interfejsu ulazni i izlazni registri podataka, registar za smer podataka, te kontrolni i statusni registri za razli�ite modove rada. Tako�e je obezbe�ena i linija zahteva za prekid radi izlaza INTR. Ta linija treba povezana na liniju zahteva za prekid magistrale.

Page 16: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

16

Matemati�ki fakultet Mikrora�unari 91/[email protected]

Paralelni port

Opšti osmobitni paralelni interfejs

Matemati�ki fakultet Mikrora�unari 92/[email protected]

Paralelni port

Razmotrimo sada promene koje su potrebne da bi se prethodno opisani rad paralelnog porta uklopio u funkcionisanje magistrale sa koriš�enjem višestrukih ciklusa �asovnika. Kao što se može videti, dodat je blok sa logikom za vremensku sinhronizaciju, koji generiše signale Load-data i Read-status.

Matemati�ki fakultet Mikrora�unari 93/[email protected]

Paralelni port

Interfejs za paralelni port kod magistrale za prenos sa ulaza koriš�enjem višestrukih ciklusa

�asovnika

Matemati�ki fakultet Mikrora�unari 94/[email protected]

Paralelni port

Kona�ni automat koji opisuje mehanizam rada bloka sa logikom za vremensku sinhronizaciju i vremenski dijagram se nalaze na slede�em slajdu.

Inicijalno, mašina je u stanju Idle. Kada izlaz sa adresnog dekodera, odnosno signal My-address, ukaže da je interfejs adresiran, mašuna prelazi u stanje Respond. Kao rezultat ovoga bude postavljen na 1 signal Go, koji zauzvrat postavi na 1 bilo signal Read-data, bilo signal Load-status – zavisno od adresnog bita A0 i od stanja linije R/W.

Procesor šalje podatke u isto vreme kada i adresu, u ciklusu �asovnika br. 1. Blok za vremensku logiku postavlja signal Go na 1 po�etkom ciklusa br. 2, i podignuta ivica tog signala dovodi do u�itavanja podataka za izlaz u registar DATAOUT.

Ulazna operacija koja �ita statusni registar prati sli�an vremenski obrazac.Blok sa logikom za vremensku sinhronizaciju direktno sa stanja Idle prelazi na stanje

Respond, zato što su zahtevani podaci dostupni u registru i mogu odmah da se prenose. Kao rezultat, dobijamo da je prenos kra�i za jedan ciklus nego što je to prikazano u vremenskom dijagramu koji opisuje rad sinhronizovane magistrale sa koriš�enjem ve�eg broja ciklusa �asovnika. Usituacijama���������������odre�eno vreme pre nego što podaci postanu dostupni, kona�ni automat �e prvo pre�i u stanje �ekanja, a u stanje Respond prelazi tek kada su podaci na raspolaganju. Signal Slave-ready je, preciznije, Slave-ready

Matemati�ki fakultet Mikrora�unari 95/[email protected]

Paralelni port

Dijagram stanja i vremenski dijagram interfejsa za paralelni

port opisanog na prethodnoj shemi

Matemati�ki fakultet Mikrora�unari 96/[email protected]

Serijski port

Serijski port se koristi za povezivanje sa procesorom onih U/I ure�aja koji zahtevaju prenos jednog bita u datom vremenskom trenutku. Klju�na karakteristika sekvencijalnih kola interfejsa je sposobnost serijske komunikacije prema ure�aju i istovremen paralelne komunikacije prema magistrali.

Transformacija izme�u serijskih i paralelnih formata se postiže preko registra za pomeranje koji ima i mogu�nost paralelnog upisa, odnosno �itanja. Naime, ulazni registar za pomeranje prihvata bit-serijski ulaz sa U/I ure�aja. Kada bude primljeno svih 8 bitova, sadržaj tog registra za pomeranje se paralelno upiše u registar DATAIN. Sli�no tome, izlazni podaci iz DATAOUT registra se paralelno u�itavaju u izlazni registar za pomeranje, a od njega se podaci istiskuju i šalju ka U/I ure�aju.

Deo interfejsa prema magistrali je isti kao i u slu�aju paralelnog porta, Statusni flegovi SIN i SOUT imaju istu funkciju.

Ovde je veoma važno ista�i zna�aj dvostrukog baferisanja u realizaciji serijskog porta.S obzirom da sadrži manji broj žica, serijski prenos je pogodniji za ure�aje koji su

fizi�ki udaljeni od ra�unara. Brzina prenosa, tj. bit rate, zavisi od prirode ure�aja koji je povezan na serijski port.

Page 17: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

17

Matemati�ki fakultet Mikrora�unari 97/[email protected]

Serijski port

Serijski interfejs

Matemati�ki fakultet Mikrora�unari 98/[email protected]

Standardni U/I interfejsi

Nije mogu�e definisati uniforman��������������������������������. On tako�e zavisi i od elektri�nih karakteristika procesora.

Kako magistrala za proširenje nema ova ograni�enja, to ona može koristiti standardizovanu signalnu shemu. Razvijen je ve�i broj standarda, od kojih �e biti obra�eni slede�i:

• PCI (Periferal Component Interconnect)• SCSI (Small Computer System Interface)• USB (Universal Serial Bus)

Matemati�ki fakultet Mikrora�unari 99/[email protected]

Standardni U/I interfejsi

Primer ra�unarskog sistema koji koristi razli�ite standarde za interfejs

Matemati�ki fakultet Mikrora�unari 100/[email protected]

PCI magistrala

Koriš�enje PCI magistrale kod ra�unarskog sistema

Matemati�ki fakultet Mikrora�unari 101/[email protected]

PCI magistrala

Signali za prenos podataka na PCI magistrali

Matemati�ki fakultet Mikrora�unari 102/[email protected]

PCI magistrala

Operacija �itanja na PCI magistrali

Page 18: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

18

Matemati�ki fakultet Mikrora�unari 103/[email protected]

PCI magistrala

Operacija �itanja na PCI magistrali koja prikazuje ulogu IRDY#/TRDY#

Matemati�ki fakultet Mikrora�unari 104/[email protected]

SCSI magistrala

Signali SCSI magistrale

Matemati�ki fakultet Mikrora�unari 105/[email protected]

SCSI magistrala

Arbitraža i selekcija SCSI magistrale.� ����6 je pobedio pri arbitraži i on bira ure�aj 2.

Matemati�ki fakultet Mikrora�unari 106/[email protected]

USB

Drvoidna struktura USB-a

Matemati�ki fakultet Mikrora�unari 107/[email protected]

USB

Operacija razdvajanja magistrale

Matemati�ki fakultet Mikrora�unari 108/[email protected]

USB

Formati USB paketa

Page 19: MR04-Organizacija ulaza i izlaza - poincare.matf.bg.ac.rspoincare.matf.bg.ac.rs/~vladaf/Courses/Matf MR/Predavanja/MR04... · 1 Organizacija ulaza i izlaza Vladimir Filipovi vladaf@matf.bg.ac.yu

19

Matemati�ki fakultet Mikrora�unari 109/[email protected]

USB

Prenos na izlaz

Matemati�ki fakultet Mikrora�unari 110/[email protected]

USB

USB okviri

Matemati�ki fakultet Mikrora�unari 111/[email protected]

Zadaci•