logo

Razlika med ISR in klicem funkcije

V tem članku boste spoznali razliko med ISR in klic funkcije , vendar preden razpravljamo o razlikah, morate na kratko vedeti o ISR in funkcijskem klicu.

java tuples

Kaj je ISR?

Prekinitvena servisna rutina (ISR) je programska rutina, ki jo strojna oprema prikliče kot odgovor na prekinitev. ISR pregleda prekinitev, določi, kako z njo ravnati, jo izvede in vrne logično vrednost prekinitve. Če nadaljnje ravnanje ni potrebno, ISR obvesti jedro s povratno vrednostjo. ISR se mora izvesti zelo hitro, da se prepreči upočasnitev delovanja naprave in delovanja vseh ISR-jev z nižjo prioriteto.

Čeprav lahko ISR premakne podatke iz registra procesorja ali vrat strojne opreme v pomnilniški medpomnilnik, se na splošno zanaša na namensko prekinitveno nit (ali nalogo), imenovano prekinitvena storitvena nit (IST), da opravi večino zahtevane obdelave. Če je potrebna dodatna obdelava, ISR jedru vrne vrednost logične prekinitve. Nato preslika številko fizične prekinitve v vrednost logične prekinitve.

Mehanizem obravnavanja prekinitev

Spodaj je mehanizem obravnavanja prekinitev v naslednjih korakih, kot so:

  • Prekinitev je pogoj, zaradi katerega CPE prekine trenutni program in izvede ISR. ISR je posebej napisan program za servisiranje stanja, ki je povzročilo prekinitev.
  • Ko je prekinitev opravljena, se CPU vrne v glavni program, točno pri naslednjem ukazu, kjer je zapustil.
  • Pri prenosu podatkov, ki ga poganja prekinitev, kadar koli je V/I naprava pripravljena na prenos podatkov, prekine CPE. V ISR bo CPE izvedel prenos podatkov.
  • Ta metoda je boljša od anketiranja, ker procesorju ni treba izgubljati časa s preverjanjem statusa V/I naprave. Tipkovnica je dober primer V/I dostopa, ki ga poganja prekinitev.
  • Namesto preverjanja CPE, mora tipkovnica prekiniti CPE, ko je pritisnjena tipka. Tako ne bo izgubljen čas za večkratno preverjanje tipkovnice, ko uporabnik sploh ne tipka.
  • V/I naprava zahteva prekinitev s pošiljanjem $overline{INTR}$ signal v CPE.
  • Kadarkoli CPE prejme $overline{INTR}$ signal, zaključi izvajanje trenutnega ukaza in nato izvede ISR. Ko je CPE pripravljen, pošlje potrditveni signal prek MEDTEM linija.
  • ISR se izvede in CPE se vrne v glavni program.
  • V/I naprave izklopijo $overline{INTR}$ signal po izvedbi.
Razlika med ISR in klicem funkcije

Na primer: V spodnjem primeru prenos V/I prek V/I, ki ga poganja prekinitev.

  • Če mora I/O naprava, ki želi izvesti prenos podatkov s procesorjem, prekiniti procesor.
  • Prekinitev je pogoj, zaradi katerega procesor izvede servisno rutino prekinitve.
  • V ISR bo procesor izvedel prenos podatkov z V/I napravo.

V tem primeru prekinite zahtevo s pritiskom tipke na tipkovnici,

  • Namesto da bi procesor preverjal, ali je tipka pritisnjena, tipkovnica prekine procesor ob pritisku na tipko.
  • V ISR tipkovnice, ki je del programske opreme gonilnika tipkovnice, bo procesor prebral podatke s tipkovnice.
Razlika med ISR in klicem funkcije

Prednosti ISR

Spodaj so naslednje prednosti ISR, kot so:

  • Asinhroni dogodki ISR ​​se lahko pojavijo kadar koli med izvajanjem programa.
  • ISR shrani PC, zastavice in registre na sklad, onemogoči vse prekinitve in naloži naslov ISR.
  • ISR ne more imeti argumentov, ki bi mu jih lahko posredovali.
  • ISR ne more vrniti vrednosti.
  • ISR omogoči prekinitve.
  • Na splošno je ISR majhen, saj zahteva čas drugih procesov.
  • Nekateri ISR ​​imajo svoj sklad.

Kaj je klic funkcije?

Klic funkcije se imenuje tudi klic podprograma. Podprogram je niz navodil, ki jih program potrebuje večkrat. Je del večjega programa, ki je odgovoren za izvedbo določene naloge. Večji program lahko izvaja veliko delovno obremenitev, podprogram pa morda izvaja le preprosto nalogo, ki je tudi neodvisna od preostalega kodiranja programa.

Funkcija je kodirana tako, da jo je mogoče klicati večkrat in z različnih mest (tudi znotraj drugih funkcij). Ko je funkcija poklicana, gre lahko procesor tja, kjer se nahaja koda za funkcijo, in izvede navodila funkcije eno za drugim. Po opravljenih funkcijah se bo procesor vrnil točno tam, kjer je končal, in nadaljeval z izvajanjem od naslednjega ukaza.

Funkcije so odlično orodje za ponovno uporabo kode. Mnogi sodobni programski jeziki podpirajo funkcije. Zbirka funkcij se imenuje a knjižnica . Knjižnice se pogosto uporabljajo kot sredstva za izmenjavo in trgovanje s programsko opremo. V nekaterih primerih je lahko celoten program zaporedje podprogramov.

V primeru procesorja 8086 podprogram prikliče a POKLIČITE navodila, nadzor pa vrne a PRAV navodilo. Zmanjša velikost programa.

verilog vedno

Razlika med ISR in klicem funkcije

Funkcijo je treba izrecno poklicati in je del istega konteksta in niti izvedbe kot njen klicatelj. ISR strojne opreme se ne kliče izrecno, temveč ga prikliče nek zunanji dogodek. Kontekst trenutne niti se samodejno ohrani, ko je prekinitev poklicana pred preklopom konteksta na ISR.

V zameno pride do obratnega preklopa konteksta, ki obnovi stanje procesorja pred prekinitvijo, tako da se izvajanje nadaljuje od točke prekinitve. Spodaj je še nekaj razlik med ISR in klicem funkcije.

ISR Klic funkcije
Prekinitev običajno sproži notranji ali zunanji signalni mikroprocesor in ne izvajanje ukazov. ISR se izvede po shranjevanju trenutnega statusa programa v sklad.
ISR izvaja različne naloge, odvisno od prekinjene naprave ali navodil, ki jih je napisal programer.
Klic funkcije se prikliče z izvajanjem navodil, ki izvajajo specifične naloge in zmanjšajo velikost programa.
Strojna oprema določa naslov ISR.
Naslov ISR je zapisan znotraj tabele vektorjev prekinitev in naslov ISR za vsako prekinitev je fiksen.
Naslov podprograma je zapisan znotraj ukaza, ki je zapisan znotraj glavne programske kode.
ISR se uporablja za vse naloge splošnega namena. Klici funkcij se izvedejo za opravila, specifična za program.
Ko med izvajanjem trenutnega programa pride do prekinitve, torej po izvedbi trenutnega ukaza procesor izvede ISR. Po izvedbi ISR ​​mora procesor nadaljevati program natanko tako, kot preden je prišlo do prekinitve.
Za to so shranjeni vsebina računalnika, registri µP in nekateri statusni pogoji. Zbirka vseh stanj statusnih bitov v mikroprocesorju se imenuje PSW (program status word).
  • Med prekinitvenim ciklom se vsebina PC in PSW potisne na sklad. Naslov veje za določeno prekinitev se nato posreduje PC-ju in nov PSW se naloži v statusni register.
  • Zadnje navodilo v ISR je vrnitev iz prekinjenega ukaza. Ko se to navodilo izvede, se stari PSW in povratni naslov odstranita iz sklada.
Tu je na skladu shranjen samo osebni računalnik, da dobi naslov naslednjega ukaza v glavnem programu.
Podprogram mora imeti dostop do podatkov iz podprograma, ki kliče, in vrniti rezultate v ta podprogram. Zato se izvedejo parametri podprograma in povezava podatkov.
To je mogoče storiti prek
  • Register AC se lahko uporablja za en sam vhodni parameter in en sam izhodni parameter. V računalnikih z več procesorskimi registri je mogoče na ta način posredovati več parametrov.
  • Drug način za prenos podatkov v podprogram je prek pomnilnika.