e-gradiva     Sistemi Motorola Omrežja      
  logotip  
SERŠ Maribor    

Lastnosti prekinitev

Transparentnost

Transparentnost seveda ni nič drugega, kot zahteva po pravilnem preklapljanju stanja CPE (prekinitev je nevidna za glavni program), ki je opisan v prejšnjih odstavkih. Za shranjevanje stanja CPE je zelo primeren sklad, še boljši pa so večkratni nabori registrov. Zadnji ukaz prekinitvenega servisnega programa mora vrniti v CPE tisto, kar se je shranilo na začetku.

Čas odziva na prekinivene signale

Druga zelo važna lastnost prekinitev je, da CPE reagira na zahtevo za prekinitev šele potem, ko dokončala izvrševanje tekočega ukaza. Razlog za to je v tem, da po prekinitve CPE nadaljuje z normalnim prevzemom prvega ukaza prekinitvenega servisnega programa, prevzemni cikel pa se ne sme pričeti, preden je prejšnji ukaz končan. V principu bi bilo možno zgraditi tako CPE, ki bi prekinjala nedokončane ukaze, vendar bi to zahtevalo, da se ob preklopu stanja CPE shranijo poleg programsko dostopnih registrov tudi vsi ostali. Teh pa je običajno veliko več in shranjevanje bi postalo zelo zamudna operacija. Ker je ena od osnovnih zahtev pri prekinitvi hiter odziv na zunanjo zahtevo, se ta možnost praktično nikoli ne uporablja.

Maskiranje

Večina današnjih računalnikov CPE realizirane tako, da imajo več vhodov, preko katerih dobivajo dobivajo zahteve za prekinitev. Poleg tega imajo običajne tudi ukaze, s katerimi je mogoče onemogočiti (maskirati) ali onemogočiti posamezen vhod. Z ukazom za onemogočitev programer v bistvu odklopi nekatere ali tudi vse vhode in povzroči, da CPE preko teh vhodov prihajajoče zahteve ignorira. Brez take kontrole lahko pride do težav, če neka V/I naprava daje zahteve za prekinitev prehitro in moti druge naloge CPE. Poleg tega je po vklopu računalnika v večini sistemov potrebno vsako V/I napravo iniacirati - to je, s posebnim programom nastaviti parametre njenega delovanja. Dokler inicializacija ni opravljena, je delovanje naprave lahko nepredvidljivo. Večina računalnikov je zato narejenih tako, da so po vklopu vsi prekinitveni vhodi samodejno v onemogočenem stanju. Z ukazom za omogočitev se po zaključeni inicializaciji prekinitve omogočijo.

Pri prekinitvenih vhodih, in tudi, če je na isti vhod priključenih več naprav, je potrebno na nek način določiti prioriteto naprav in prepoznavanje naprave, ki je dala zahtevo. Poleg tega je pri vsaki upoštevani prekinitvi potrebno na nek način obvestiti prekinjajočo napravo, da jebila njena zahteva upoštevana. Temu obveščanju pravimo poterjevanje prekinite.

Prioriteta

Prioriteta določa, katera izmed prekinitev se bo izvedla prva če pride do več zahtev hkrati. Poleg tega je v mnogih računalnikih dovoljeno tudi to, da zahteve z višjo prioriteto prekinejo prekinitvene servisne programe naprav z nižjo prioriteto. Temu pravimo ugnezdene prekinitve. Z ugnezdenimi prekinitvami in ustrezno dodelitvijo prioritete posameznim V/I napravam lahko na preprost način dosežemo, da bo zahteva vsake naprave upoštevana dovolj hitro. Nekatere naprave so namreč glede hitrosti odziva veliko bolj kritične kot druge, kar še posebej velja za računalnike, pri vodenju procesorjev in drugih časovno kritičnih uporabah.

V računalnikih z ugnezdenimi prekinitvami se torej med izvajanjem prekinitvenega servisnega programa nekatere prekinitvene zahteve upoštevajo, druge pa ne, odvisno od prioritete zahteve. Za realizacijo tega načina prekinitve se običajno CPE dodeli nek prioritetni nivo, ki ga je mogoče spreminjati s programom. Prioritetni nivo CPE je v bistvu prioriteta programa, ki se trenutno izvaja. CPE upošteva samo tiste prekinitvene zahteve, katerih prioriteta je višja od njene lastne. V času izvajanja prekinitvenega servisnega programa neke naprave mora biti prioriteta CPE postavljena na vrednost, ki je enaka prioriteti tiste naprave. S tem dosežemo, da so prekinitvene zahteve z enako in nižjo prioriteto onemogočene, tiste z višjo pa omogočene.

V večini primerov je prioriteta posameznih prekinitvenih vhodov vnaprej določena in nespremenljiva. Obstajajo tudi računalniki, ki lahko prioriteto vhodov spreminjajo s programom. Ta rešitev se uporablja redko in je zanimiva predvsem takrat, kadar se okolje v katerem deluje računalnik s časom spreminja in se mu je potrebno prilagajati. Za večino računalnikov to ne velja.

MARJETIČNa VERIGA

Programsko izpraševanje je preprosta rešitev, ki se dosti uporablja. Njena slabost je počasnost, ker v povprečju preteče precej časa, preden se prične izvajati zahtevani prekinitveni servisni program. Zato se že dolgo v takih primerih določanja prioritete uporabljaaparaturna rešitev, ki je znana pod imenom marjetična veriga.

Osnovna ideja marjetične verige (angl. daisy chain) je v tem, da naprava, ki ni zahtevala prekinitve, spusti signal INTA naprej v naslednjo napravo, medtem ko naprava, ki je zahtevala prekinite, signalu zapre pot, tako da ne pride do drugih naprav. Ime marjetična veriga je nastalo zato, ker potuje signal INTA iz vhoda na izhod prve naprave, nato iz vhoda na izhod druge naprave in tako naprej, kar najbibilo podobno pletenju verigeali venčka iz marjetic.

Signal INTA aktivira CPE v tako imenovanem prekinitvenem prevzemnem ciklu (angl. interrupt acknowledge cycle), ko CPE reagira na prekinitveno zahtevo iz vhoda. Prekinitveni prevzemni cikel je bralni cikel v katerem CPE od prekinjajoče naprave z višjo prioriteto informacijo, na osnovi katere je enolično razvidno, katera je ta naprava. prekinitveni prevzemnicikel se uporablja zato, ker je tacikel po pomenu nekoliko podoben ukaznemu prevzemnemuciklu, le da se informacija nanaša na prekinitev in ne na ukaz. Informacija se pošlje običajno kar preko podatkovnih signalov, čeprav so možne tudi drugačne rešitve.

Ni nujno, da ima vsak prekinitveni vhod svoj signal INTA. Pri nekaterih računalnikih obstoja samo en tak signal (ali ena kombinacija kontrolnih signalov) skupaj z dodatno informacijo, ki pove, na kateri vhod se signal nanaša. Običajno je ta dodatna informacija kar številka vhod, ki se nahaja na npr. naslovnih signalih. Naprava, ki zapre pot signalu, mora v temciklu poslati v CPE informacijo, na osnovi katere je enolično razvideno, za katero napravo gre.

Očitno ima pri marjetični verigi najvišjo prioriteto tista naprava, ki je najbližja CPE, najnižjo pa tista, ki je od CPE najbolj oddaljena. Ker signalu zapre pot natanko ena naprava, ni nevarnosti za sporna stanja. Poleg tega pri tem načinu praviloma ni možno, da bi na isti vhod priključene naprave ena drugi prekinjale prekinitvene servisne programe. Gledano izCPE imajo namreč vse isto prioriteto.

Prepoznavanje naprave

Prepoznavanje naprave, ki je zahtevala prekinitev, potrebno vedno, kadar ima računalnik več naprav, ki lahko zahtevajo prekinitev. Šele ko računalnik ve katera naprava je dala zahtevi, lahko aktivira ustrezen prekinitveni servisni program. V primeru, da ima CPE več prekinitvenih vhodov in je na nek vhod vedno priključena ista naprava, je ta problem trivialen. CPE ve od kod je prišla zahteva in ne potrebuje dodatne informacije za prepoznavanje.

Drugače je takrat, kadar je na en prekinitveni vhod priključenih več naprav ali kadar je na nek vhod sicer priključena samo ena naprava, vendar ne vedno ista. Taki primeri so razmeroma pogosti in zahtevajo nek mehanizem za prepoznavanje naprave, ki je zahtevala prekinitev. Kot smo ravnokar videli pri obravnavi prioritete, lahko uporabimo programsko izpraševanjeali marjetično verigo. Oba načina namreč poleg določanja prioritete vsebujeta tudi prepoznavanje naprave.

Vektorske prekinitve in prekinitveni vektor

Pri uporabi marjetične verige smo omenili, da mora naprava z najvišjo prioriteto v prekinitvenem prevzemnemciklu poslati v CPE informacijo, iz katere lahko CPE prepozna napravo. Ena od danes najpogosteje uporabljenih rešitev za pošiljanje te informacije so takoimenovane vektorske prekinitve.

Vektorske prekinitve je skupno ime za vse načine prepoznavanja naprave, pri katerih naprava pošlje v CPE informacijo o naslovu njenega prekinitvenega servisnega programa. V večini primerov je ta informacija kar naslov ali del naslova, ki podaja začetek prekinitvenega servisnega programa te naprave. Temu naslovu pravimo prekinitveni vektor, ali pri delu naslova številka prekinitvenega vektorja. Naprava, oziroma bolj natančno, krmilnik naprave, pošlje po podatkovnih signalih v CPE prekinitveni vektor v prekinitvenem prevzemnem ciklu.

SERŠ Maribor, Strokovna gimnazija, leto: 2002, avtor: Gregor Jelen