IRQ

Keskeytys (IRQ, Interrupt Request) toimii siten, että kun laite haluaa emolevyn palvelevan sitä, se ilmoittaa tästä keskeytyssignaalilla. Esimerkiksi kun hiirtä liikutetaan, lähtee välittömästi keskeytyssignaali hiiriportin kautta emolevylle. Tällöin hiiren toimintoja noudatetaan ja nuoli liikkuu näytöllä.

Emolevy tietää mitä laitetta pitää palvella, koska kaikilla keskeytystä vaativilla laitteilla on yksilölliset IRQ-keskeytysnumerot. Poikkeuksen muodostaa keskeytyksen jakoa (Shared IRQ) tukevat PCI-laitteet. Ne voivat jakaa saman keskeytyksen, jolloin vähät keskeytykset riittävät paremmin useille laitteille. Kaikki nykyiset PCI-korttipaikat jakavatkin IRQ-keskeytyksiä.

Keskeytyksiä on kaiken kaikkiaan 16, joista osa on varattu tietyille laitetoiminnoille, eikä niitä voida ottaa muille laitteille käyttöön. Osa keskeytyksistä on vapaana ja osaa varatuista voidaan ottaa käyttöön halutuille uusille laitteille. AT- ja uudempien mikrotietokoneiden keskeytysrakenne nähdään seuraavassa taulukossa.

Mikrotietokoneen keskeytysrakenne
IRQ-linja Toiminta Voidaan ottaa lisäkortille käyttöön
IRQ 0 Kellokeskeytys Ei
IRQ 1 Näppäimistö Ei
IRQ 2 Linkitetty IRQ 9:ään Kyllä
IRQ 3 COM 2 tai COM 4 Kyllä (Ei, jos esim. modeemi käytössä)
IRQ 4 COM 1 tai COM 3 Kyllä (Ei, jos esim. sarjahiiri käytössä)
IRQ 5 LPT 2, äänikortti tai käyttämätön Kyllä, jos käyttämätön
IRQ 6 Levykeasema Ei
IRQ 7 LPT 1 Kyllä (Ei, jos tulostin käytössä)
IRQ 8 Reaaliaikakello Ei
IRQ 9 Linkitetty IRQ 2:een Ei (Yhdistetty IRQ 2:een)
IRQ 10 Käyttämätön tai verkkokortti Kyllä, jos käyttämätön
IRQ 11 Käyttämätön tai SCSI-kortti tai USB Kyllä, jos käyttämätön
IRQ 12 Käyttämätön tai PS/2-hiiri Kyllä (Ei, jos PS/2-hiiri käytössä)
IRQ 13 Matematiikkaprosessori Ei
IRQ 14 Ensimmäinen IDE-portti
(2 IDE-levyä: Master ja Slave)
Kyllä (Ei, jos 1. IDE-kaapeli käytössä)
IRQ 15 Toinen IDE-portti
(2 IDE-levyä: Master ja Slave) tai käyttämätön
Kyllä (Ei, jos 2. IDE-kaapeli käytössä)


Jos uusi laite ottaa jonkin keskeytyksen käyttöön, on varmistettava että kyseinen keskeytys on vapaana tai sitä ennen käyttänyt laite on poistettu käytöstä. Kaksi keskeytysten jakoa tukevaa PCI-laitetta voivat jakaa saman keskeytyksen.

Keskeytyksiä on käytettävä, koska prosessori pystyy suorittamaan tehtäviä vain yksi kerrallaan. Näin laitteita voidaan palvella vuorotellen niiden tarvitessa huomiota.

Tehtävien jakamista varten on käytössä kaksi erilaista tekniikkaa:
  • Luettelo (Polling) Tätä menetelmää käyttävistä laitteista tehdään luettelo, jonka perusteella prosessori käy tarkistamassa vuorotellen jokaiselta laitteelta, tarvitsevatko ne huomiota. Tekniikan haittapuolena on mikron toiminnan hidastuminen laitteen jatkuvan seurannan takia. Prosessori kuluttaa turhaan aikaa kokoaikaiseen seurantaan.
  • Keskeytys (Interrupt) Keskeytysmenetelmä on huomattavasti järkevämpi kuin luettelomenetelmä. Tässä prosessori kuluttaa aikaa ainoastaan silloin, kun jokin laite todella tarvitsee huomiota. Muun ajan prosessori voi tehdä muita tehtäviään.
Keskeytyksiä on käytettävissä kaikenkaikkiaan 16 kappaletta. Niistä periaatteessa 11 on varattuna mikron perustoimintoihin ja vain 5 on vapaana. Näistäkin nykyisissä mikroissa menee yhdet keskeytykset äänikortille, USB-portille ja toiselle IDE-portille, joten vapaaksi jää enää 2. Muita keskeytyksiä vaativia laitteita ovat muun muassa verkkokortti, SCSI-kortti tai videokortti.

Päällekkäiset keskeytykset
Yleisesti ottaen päällekkäisiä keskeytyksiä ei voi olla, mutta tietyissä tapauksissa ne ovat mahdollisia.
  • ISA - ISA-väylillä olevia laitteita voi asettaa käyttämään samaa keskeytystä vain silloin, kun ollaan varmoja, että kyseisiä laitteita ei käytetä koskaan yhtä aikaa. Joissakin tapauksissa laitteet eivät toimi lainkaan samalla keskeytysnumerolla. On syytä kuitenkin välttää tällaista asettelua virhetilanteiden välttämiseksi.
  • PCI - Esimerkiksi PCI-kortit toimivat hiukan eri tekniikalla kuin perinteiset ISA-kortit ja ne käyttävät omaa PCI INT -keskeytysrakennetta. Lähes jokainen PCI-kortti vaatii IRQ-keskeytyksen, mutta keskeytysten jako onnistuu PCI INT -rakenteen avulla. PCI-väylä osaa jakaa IRQ-keskeytyksiä useammalle PCI-kortille, koska korteille annetaan yksilölliset tai jaetut PCI INT -keskeytykset.
  • Keskeytys 2 ja 9 - Keskeytykset 2 ja 9 ovat myös hieman poikkeustapauksia. IRQ 2 on linkitetty 9:ään, jolloin molemmat ovat tavallaan varattuja. Laite voidaan kuitenkin asettaa käyttämään keskeytystä 2. Keskeytyksiä tutkimalla huomataan, että laitteen käyttämä keskeytys näkyy numerona 9. Tämä johtuu linkityksestä. Huomaa, että IRQ 9:ää ei saa jakaa muiden laitteiden kanssa.
Jos laite ei toimi ja se jakaa keskeytyksen jonkin muun laitteen kanssa, vaihda keskeytys toiseksi. PCI- ja ISA PnP -laitteiden osalta keskeytys voidaan vaihtaa käyttöjärjestelmästä. Tavallisten ISA-laitteiden kohdalla keskeytys vaihdetaan lisäkortilla olevista jumppereista.

Joissakin tapauksissa Windows 2000 asettaa useita laitteita samalle keskeytykselle. Syynä keskeytysten ryhmitykseen on ACPI. Jos kaikki laitteet tukevat ACPI:ta ei ongelmia pitäisi olla, koska ACPI huolehtii laitteista itse ohittaen BIOSin asettamat keskeytykset.

Jos laitteita on useita, esimerkiksi kuusi, ja mukana on hiukan vanhempia laitteita, ei järjestelmä välttämättä pysy pystyssä tai jokin laitteista ei toimi kunnolla. Kokeile tarvittaessa asettaa PnP OS -asetus pois päältä BIOSista.


Prioriteettijärjestys
Keskeytysten prioriteettijärjestys tarkoittaa sitä, missä järjestyksessä samaan aikaan tapahtuneet kutsut suoritetaan. Listassa ylempänä olevia keskeytyksiä palvellaan ennen alempana olevia. Tärkein keskeytys on IRQ 0 ja vähiten tärkein IRQ 7.

Keskeytykset järjestyksessä tärkeimmästä vähimmän tärkeään ovat 0, 1, 2, 8, 9, 10, 11, 12, 13, 14, 15, 3, 4, 5, 6 ja 7.

Syy siihen, että keskeytysten järjestys ei mene numerojärjestyksessä, johtuu keskeytysten kahden PIC-piirin kytkentätavasta. PC/XT-mikron kahdeksan keskeytystä ovat prioriteetiltaan numerojärjestyksessä, koska niitä hoitaa vain yksi PIC-piiri.


Keskeytysohjaimet (PIC)
Nämä asiat löytyvät mm. Inside PC-laitetekniikka -kirjasta.

NMI-, SMI-, INT- ja CPU-keskeytykset
Nämä asiat löytyvät mm. Inside PC-laitetekniikka -kirjasta.