Keskeytyskäsite
Keskeytys tarkoittaa, että CPU keskeyttää tilapäisesti käynnissä olevan ohjelman ulkoisten/sisäisten satunnaisten tapahtumien tai ohjelman ennalta järjestämien tapahtumien vuoksi, kun CPU suorittaa ohjelmaa normaalisti. Siirry ohjelmaan, joka palvelee ulkoisia/sisäisiä tapahtumia tai ennalta sovittuja tapahtumia. Kun palvelu on valmis, palaa jatkaaksesi väliaikaisesti keskeytetyn ohjelman suorittamista.
Kun käyttäjä esimerkiksi käyttää näppäimistöä, keskeytyssignaali lähetetään joka kerta, kun näppäintä painetaan ilmoittaakseen CPU:lle, että "näppäimistön syöttö" on tapahtunut, ja CPU:n on luettava näppäinarvo. avaimen, ja CPU keskeyttää tilapäisesti sen, mikä on käsillä. Ohjelma siirretään lukuohjelmaan, joka käsittelee avaimen arvon. Kun lukutoiminto on valmis, CPU palaa alkuperäiseen ohjelmaan jatkaakseen toimintaa.
Voidaan nähdä, että keskeytyksen esiintyminen johtuu syystä. Keskeytyksen aiheuttanut tapahtuma on keskeytyksen lähde. Keskeytyslähteitä on useita, joten keskeytyksiä on monenlaisia. CPU:n tulee antaa erilaisia ratkaisuja eri keskeytyslähteiden vaatimuksiin keskeytystapahtumien käsittelyssä, mikä vaatii keskeytyskäsittelijän (keskeytyspalvelurutiinin) ratkaisemiseksi.
Ohjelman logiikan mukaan keskeytyksen olemus on ohjelman siirto. Keskeytykset tarjoavat mekanismin ohjelman toimintaympäristön nopeaan siirtoon. Ohjelmasegmenttiä, jota CPU palvelee, kutsutaan keskeytysprosessointiohjelmaksi (palveluohjelmaksi), ja tilapäisesti keskeytettyä ohjelmaa kutsutaan pääohjelmaksi (tai kutsuohjelmaksi). Ohjelman siirron käynnistää mikroprosessorin sisäinen tapahtuma tai ulkoinen tapahtuma, ja keskeytysprosessi sisältää kaksi siirtoa, joista ensin pääohjelma siirtyy keskeytyksenkäsittelyohjelmaan (palvelu) ja sitten pääohjelmaan keskeytyksen käsittelyn jälkeen. (palvelu)ohjelma käsitellään. Siirtää. Ohjelman keskeytyslähteen aiheuttamaa siirtokytkentämekanismia käytetään ohjelman kulkupolun nopeaan muuttamiseen, mikä on erittäin tehokas joidenkin odottamattomien tapahtumien reaaliaikaisessa käsittelyssä.
Keskeytysnumeron saaminen
Keskeytysnumero on koodi, jonka järjestelmä määrittää kullekin keskeytyslähteelle tunnistamista ja käsittelyä varten. Keskeytysnumerolla on erittäin tärkeä rooli keskeytyksen käsittelyprosessissa. Keskeytysjärjestelmässä, joka ottaa käyttöön vektorikeskeytystilan, CPU:n on käytettävä sitä löytääkseen keskeytyspalvelurutiinin tuloosoitteen ja toteuttaakseen ohjelman siirron. Keskeytyspalvelurutiinin tuloosoitteen löytämiseksi keskeytysvektoritaulukosta voidaan saada osoitin keskeytysnumerosta (n)×4, joka osoittaa keskeytysvektoriin (eli keskeytyspalvelun tuloosoitteeseen). rutiini) tallennetaan keskeytysvektoritaulukkoon, ja tämä osoite otetaan siitä (CS: IP), ladataan koodisegmenttirekisteri CS ja käskyosoitinrekisteri IP ja siirretään sitten keskeytyspalvelurutiiniin.
Menetelmä, jolla CPU hankkii järjestelmän erityyppisten keskeytyslähteiden keskeytysmäärän, on erilainen. Maskoitavan keskeytyksen keskeytysnumero saadaan keskeytysohjaimelta keskeytysvastejakson aikana. Pehmeän keskeytyksen INT nH keskeytysnumero (nolla) annetaan suoraan keskeytyskäskystä. Ei-maskeoitavan keskeytyksen NMI ja joidenkin CPU:n sisällä olevien erityisten keskeytysten keskeytysnumero on ennalta asetettu järjestelmässä, kuten NMI:n keskeytysnumero on 02H, laittoman jakajan keskeytysnumero on 0H ja niin edelleen.
Keskeytysnumeron käyttö
Tietokoneeseen on liitettävä monia laitteita, kuten äänikortit, tulostimet, modeemit jne. Nämä laitteet voivat vaihtaa tietoja suorittimen kanssa keskeytyspyyntöjen kautta. Kun laite tarvitsee CPU:ta käsittelemään tietojaan, se voi lähettää CPU:lle keskeytyspyyntösignaalin keskeyttääkseen suoritettavan työn ja käsitellä sitten laitteen toimintapyynnön ja palata sitten alkuperäiseen työhön käsittely on valmis. Kun laite lähettää keskeytyspyynnön CPU:lle, se kertoo CPU:lle mikä oheislaite tarvitsee huoltoa IRQ-arvon kautta, joten jokainen laite varaa IRQ-arvon.
Jokaisessa tietokonejärjestelmässä keskeytysohjain 8259 tai 8259A (nyt tämä siru on enimmäkseen integroitu muihin siruihin) ohjaa järjestelmän jokaisen laitteiston keskeytysohjausta. IRQ-ryhmiä on 16. Silloina käytettyjä IRQ-ryhmiä lukuun ottamatta laitteisto voi kutsua vain 15 IRQ-ryhmää, ja näillä IRQ:illa on oma oletuskokoonpanonsa.
IRQ-arvoja käytettäessä on ymmärrettävä periaate, eli IRQ-arvoa voi käyttää vain yksi laite, esimerkiksi: Yleensä hiiri käyttää IRQ4:ää (COMl), tällä hetkellä IRQ4:ää ei voi enää käyttää. muilla laitteistoilla Ylös. Eri käyttöjärjestelmäversioissa on erilaiset IRQ-asetukset, joten uusia laitteita asennettaessa järjestelmä ei useinkaan pysty automaattisesti tunnistamaan oikeaa IRQ:ta kutsutulle laitteistolle, mikä aiheuttaa tämän laitteiston tai alkuperäisen laitteiston. Vanha laitteisto ei toimi kunnolla. Itse asiassa tämä johtuu siitä, että järjestelmä määrittää automaattisesti laitteiston IRQ:n muille laitteille, jotka ovat samat kuin tämä IRQ, jolloin syntyy ristiriitoja ja laitteisto ei voi toimia normaalisti. Yleensä, jos kohtaat tämän tilanteen, voit ratkaista sen säätämällä manuaalisesti uuden ja vanhan laitteiston IRQ-kokoonpanoa.