Koti / ikkunoiden yleiskatsaus / Kaksi laitetta yhdessä irq mitä tehdä. Laitteisto keskeyttää. Keskeytysohjain. Kuormien seuranta erityisellä apuohjelmalla

Kaksi laitetta yhdessä irq mitä tehdä. Laitteisto keskeyttää. Keskeytysohjain. Kuormien seuranta erityisellä apuohjelmalla

On harvinaista, että tietokone, varsinkin kotitietokone, elää koko elämänsä ilman, että sitä päivitetään tai uusia laitteita lisätään. Useimmissa tapauksissa tietysti alkeellisimpien sääntöjen mukaisesti tällainen leikkaus on kivuton, aiheuttamatta erityisiä ongelmia. Mutta noin joka kymmenes (tai jopa kahdeskymmenes - ei väliä) tietokone saatetaan toimimattomaan tilaan: se alkaa usein jäätyä, kieltäytyy suorittamasta mitään toimintoja tai jopa putoaa meidän kaikkien rakastamaan. sininen näyttö kuolemasta. Yleensä tällaisten ongelmien todennäköisin syy on laitteistoristiriidat (uudet ja vanhat), jotka eivät jakaneet laitteistoresursseja. No, jos pätevyytesi avulla voit ratkaista esiin tulleet ongelmat tai onko lähelläsi joku, joka voi auttaa sinua, mutta jos ei ole mitään sellaista? Se ei kuitenkaan ole jumalat, kuten tiedät, kattilat poltetaan, istutaan, mietitään - katsot ja murtaudut läpi, koska kaikki ei ole niin vaikeaa, vaikka ongelma onkin useimpien laitteiden yhteensopivuus, sen perustamisesta lähtien. 80-luvun puolivälissä, ei ole vieläkään paljon ei vähentynyt. Ehdotettu artikkeli auttaa käyttäjää käsittelemään yhtä laitteille vaadittavista laitteistoresursseista ja useimmiten kaikenlaisten konfliktien perimmäisistä syistä - laitteistokeskeytyksistä (IRQ).

Järjestelmän laitteistoresurssit

Komponentit voivat vaatia kolmea päätyyppiä eri laitteistoresursseja toimiakseen. Melkein jokainen laite käyttää yhtä tai useampaa I/O-porttia. AT Tämä tapaus tämä ei ole sarja- tai rinnakkaisportti, vaan vain erityinen osoite, kuten osoite RAM-muistissa. Nämä portit toimivat erikoisjoukkueet keskusprosessori, jonka avulla kaikki tiedot joko kirjoitetaan porttiin tai luetaan siitä. Usein tiedonvaihto prosessorin ja laitteen välillä tapahtuu vain porttien kautta, ja jotkut laitteet ottavat vastaan ​​tusinaa tai jopa useampia porttiosoitteita, joista jokainen suorittaa tietyn toiminnon.

Direct Memory Access (DMA) -kanavia käytetään paljon harvemmin. Tämäntyyppinen vuorovaikutus on tarkoitettu laitteille, jotka vaihtavat suuria tietolohkoja RAM, esimerkiksi, levyasemat tai tulostimia. Koko keskus ohittaa keskusprosessorin, joka vain käynnistää vaihtotoiminnon ja jatkaa välittömästi muiden töiden suorittamiseen. Tämä lähestymistapa voi parantaa merkittävästi koko järjestelmän suorituskykyä.

Ja kolmas resurssityyppi ovat laitteistokeskeytykset, jotka ovat järjestelmän perusmekanismi reagoida ulkoisiin tapahtumiin. Laitteistokeskeytykset, joita yleisesti kutsutaan IRQ:iksi (Interrupt ReQuests), ovat fyysisiä signaaleja, joita laiteohjain käyttää ilmoittaakseen prosessorille pyynnön käsittelemisestä. Perinteisesti keskeytyksen käsittelykaavio voi näyttää tältä:

  • prosessori vastaanottaa keskeytyssignaalin ja sen numeron;
  • erikoistaulukon avulla löydetään annetulla numerolla olevan keskeytyksen käsittelystä vastaavan ohjelman osoite - keskeytyskäsittelijä;
  • prosessori keskeyttää nykyisen tehtävän suorittamisen, tallentaa välitulokset ja siirtyy keskeytyskäsittelijän suorittamiseen;
  • prosessori käyttää laitetta ja tarkistaa keskeytyksen syyn;
  • pyydetyt toiminnot käynnistetään - alustus, laitteen konfigurointi, tiedonvaihto jne.;
  • kun kaikki tarvittavat toiminnot on suoritettu, prosessori palaa keskeytettyyn tehtävään.

Toisin kuin suoritettavan sovellusohjelman laukaisemat ohjelmistokeskeytykset, laitteistokeskeytykset voivat tapahtua odottamattomimpina aikoina, ja lisäksi useita keskeytyksiä voi esiintyä samanaikaisesti. Jotta järjestelmä ei "harkisi liikaa" sitä, mikä palvelun keskeytys ylipäätään, on olemassa erityinen prioriteettijärjestelmä. Jokaiselle keskeytykselle on määritetty oma yksilöllinen prioriteetti. Jos useita keskeytyksiä saapuu samanaikaisesti, järjestelmä antaa etusijalle korkeimman prioriteetin ja lykkää muiden, vähemmän tärkeiden keskeytysten käsittelyä hetkeksi.

Keskeytä jakelu

Harkitse, kuinka keskeytykset yleensä jakautuvat tavallisessa tietokoneessa. Osa numeroista on tiukasti sidottu tiettyihin laitteisiin, osa voidaan vapauttaa ja käyttää tarpeisiisi. Aloitetaan järjestyksessä:

  • IRQ 0- keskeyttää järjestelmän ajastimen. Luodaan 18,2 kertaa sekunnissa. Käytetty tässä ominaisuudessa ensimmäisen IBM PC:n luomisesta lähtien (tämä numero ei ole käytettävissä muihin käyttötarkoituksiin);
  • IRQ 1- näppäimistön keskeytys. Näppäimistön ohjain luo sen joka kerta, kun näppäintä painetaan (numero ei ole käytettävissä muuhun käyttöön);
  • IRQ2 XT-luokan tietokoneissa, jotka käyttivät vain 8 keskeytyslinjaa, varattiin järjestelmän lisälaajennukselle ja AT-luokan tietokoneista alkaen siihen liitettiin toinen ohjain. Nykyään järjestelmä käyttää IRQ 2:ta yhteensopivuuden vuoksi vanhempien ohjelmistojen kanssa, numero ei ole käytettävissä muihin käyttötarkoituksiin;
  • IRQ 3- asynkronisen portin COM 2 keskeytys. Samaa keskeytystä käyttävät myös COM 4 -portin kautta toimivat laitteet, jotka voidaan haluttaessa poistaa käytöstä, mutta kukaan muu ei kuitenkaan pysty osoittamaan IRQ 3:aa;
  • IRQ4 analogisesti edellisen kanssa, tätä keskeytystä käyttävät laitteet, jotka käyttävät COM 1 / COM 3 -portteja;
  • IRQ 5 alun perin tarkoitettu toisen rinnakkaisportin LPT2 käyttöön, mutta sitten, kun toinen rinnakkaisportti hylättiin, IRQ 5 vapautui. Myöhemmin useimmat ISA-äänikortit käyttivät sitä aktiivisesti. nykyaikaiset PCI-äänikortit käyttävät tätä keskeytystä vain yhteensopivuuden vuoksi vanhempien pelien kanssa, joista suurin osa tukee SB Prota. IRQ 5 voidaan käyttää muihin tarkoituksiin ja liittää PCI-paikkaan;
  • IRQ6, ensimmäisistä tietokoneista alkaen, levykeohjain käyttää (numero ei ole käytettävissä muihin käyttötarkoituksiin);
  • IRQ7- oletusarvoisesti ensimmäisen rinnakkaisportin LPT 1 keskeytys. Jos portti on poistettu käytöstä (jos tulostinta ei ole saatavilla tai se on suunniteltu USB:lle), sitä voidaan käyttää erilaisia ​​laitteita. IRQ 7 voidaan liittää PCI-paikkaan;
  • IRQ8- reaaliaikainen kellon keskeytys, joka esiteltiin ensimmäisen kerran IBM AT:ssa. Muu käyttö ei ole mahdollista;
  • IRQ 9 ja IRQ 10 ovat ilmaisia;
  • IRQ 11 yleensä varattu USB-väylälle, mutta sitä voidaan käyttää muihin tarkoituksiin (tätä varten poista USB-tuki käytöstä BIOSissa);
  • IRQ 12 käytetään PS/2-hiirelle, mutta sitä voidaan käyttää muihin tarkoituksiin (jos PS/2-hiiri ei ole saatavilla tai se on poistettu käytöstä);
  • IRQ 13 sitä käytti alun perin aritmeettinen apuprosessori, ja nyt se on varattu yhteensopivuus vanhempien ohjelmistojen kanssa (numero ei ole käytettävissä muihin käyttötarkoituksiin);
  • IRQ 14 ja IRQ 15 ensisijaisen ja toissijaisen IDE-ohjaimen soveltamat vastaavasti.

On useita tapoja selvittää, kuinka keskeytysnumerot tällä hetkellä jakautuvat tietyssä tapauksessa. Kun käynnistät tietokoneen, jopa ennen kuin Windows alkaa latautua, näkyviin tulee asetustekstitaulukko. Välittömästi sen jälkeen on luettelo PCI-laitteista ja niille osoitettu IRQ-numero.

Tai jos käytät edelleen Windows 9x -käyttöjärjestelmää, ohjauspaneelissa on Järjestelmäkuvake, napsauta sitä - ja valitse "Laitteet"-välilehti. "Tietokone" -laitteen ominaisuuksista löydät luettelon kaikista laitteista ja niiden IRQ:sta. Windows 2000/XP:ssä meillä ei ole suoraa pääsyä keskeytyshallintaan, joten nähdäksemme IRQ-luettelon meidän on käytettävä tavallista tietotyökalua (Ohjauspaneeli/Hallintatyökalut/Tietokoneen hallinta/Järjestelmätiedot/Laitteistoresurssit). Ja lopuksi, kukaan ei ole peruuttanut sellaisten apuohjelmien käyttöä, jotka testaavat tietokoneen laitteiston ja ohjelmiston ominaisuuksia.


Niistä epäilemättä suosituin on SANDRA, joka pystyy tarjoamaan käyttäjälle kattavat tiedot, myös keskeytykset.

Laiteristiriidat

Liikaa yksityiskohtiin menemättä voidaan sanoa, että konflikti on tilanne, jossa useat objektit yrittävät samanaikaisesti käyttää samaa järjestelmäresurssia. Keskeytysristiriita syntyy, kun useat laitteet käyttävät samaa keskeytyslinjaa pyyntösignaalin lähettämiseen, eikä ole olemassa mekanismia näiden pyyntöjen luokittelemiseksi, mikä aiheuttaa joko vian tai yhden laitteista yksinkertaisesti lakkaa toimimasta. Jotta sinulla on selkeä käsitys siitä, kuinka konflikteja voidaan välttää tai poistaa, sinun on ymmärrettävä IRQ-hallinnan mekanismi.

Kuten tiedät, henkilökohtaiset tietokoneet alkoi IBM PC XT:llä. Sen arkkitehtuuri tarjosi vain kahdeksan riviä laitteistokeskeytyksiä, joita ohjattiin erityisellä ohjaimella. Jokaiselle niistä annettiin oma yksilöllinen numeronsa, joka määritti keskeytyksen prioriteetin ja sen käsittelijän osoitteen (ns. keskeytysvektori). Arkkitehtuurin seuraava versio, IBM PC AT, täydensi olemassa olevia johtoja kahdeksalla lisää, joita ohjattiin toisella ohjaimella, joka oli kytketty yhteen ensimmäisen ohjaimen keskeytyslinjasta. Valitettavasti tämä arkkitehtuuri lopetti kehityksensä tässä vaiheessa, joten kaikissa nykyaikaisissa tietokoneissa, huolimatta niissä käytettyjen lisälaitteiden merkittävästi lisääntyneestä määrästä, on edelleen vain kuusitoista keskeytyslinjaa, joista yksi on varattu toisen ohjaimen emulointiin.

Alun perin IBM PC AT -tietokoneessa oli vain yksi väylä, jonka kautta laitteet pystyivät kommunikoimaan prosessorin ja muistin kanssa - ISA. Suurin osa keskeytyslinjoista osoitettiin tavallisille ISA-laitteille, joten kun uusi universaali PCI-väylä ilmestyi, kävi ilmi, että sen osuudella oli enää neljä vapaata keskeytystä, merkitty INT A, INT B, INT C, INT D, joten vain neljä PCI-laitetta voi vastaanottaa itsenäisiä keskeytyksiä järjestelmässä. Mutta samalla on pidettävä mielessä, että IDE-ohjain on erikoisasemassa, mikä ei ole näiden neljän laitteen joukossa vain siksi, että vaikka se on tiedonsiirtomenetelmän kannalta PCI-laite, se oma keskeyttää IRQ:n. 14 ja IRQ on määritetty sille tiukasti 15, kuten vanhemmille ISA-laitteille. AGP-väylälle, joka on PCI-väylän muunnelma, INT A on "uhrattu" ja USB-väylä yhtenä järjestelmän komponentit, muodostaa yhteyden PCI:hen INT D:n avulla, mikä vähentää "rehellisten" PCI-laitteiden määrän vain kahteen. Emme saa unohtaa Power Management / System Management -virranhallinta-alijärjestelmää, joka vaatii myös oman keskeytyksensä. Jos siis tosielämässä on useita keskeytyksiä käyttäviä PCI-laitteita, niille on mahdotonta tarjota ainutlaatuisia laitteiston IRQ:ita, ja tällaisissa tapauksissa käytetään Plug & Play -tekniikkaan perustuvaa laitteisto-ohjelmistomenetelmää, joka teoriassa välttää ristiriidat. Vaikka tosielämässä voi tapahtua mitä tahansa, eivätkä loput ISA-laitteet silti voi jakaa keskeytyslinjoja, ovat ne siksi konfliktien pääprovokaattorit. Siten ristiriitojen ratkaisemisen ongelma rajoittuu keskeytysnumeroiden oikeaan jakautumiseen ISA-laitteiden tai "bugisten" ajurien ongelmien tapauksessa.

Järjestelmässä IRQ-numerot jaetaan kahdesti fyysisten linjojen välillä. Järjestelmän BIOS tekee tämän ensimmäisen kerran, kun järjestelmä käynnistyy. Jokaiselle Plug & Play -laitteelle (ja tämä sisältää kaikki PCI:n, nykyaikaisen ISA:n ja kaikki emolevyyn integroidut laitteet) on määritetty yksi numero saatavilla olevien laitteiden joukosta. Jos numeroita ei ole tarpeeksi, useat rivit saavat yhden yhteisen. PCI-laitteille tämä ei ole ongelma - jos sinulla on normaalit ohjaimet ja käyttöjärjestelmän tuki, kaiken pitäisi toimia hyvin. Mutta jos useat ISA-laitteet saavat saman numeron tai vähintään "räjähtävän" PCI- ja ISA-laitteiden seoksen, konflikti on yksinkertaisesti väistämätön, ja sitten joudut puuttumaan keskeytysten automaattiseen jakeluun. Tässä tapauksessa sinun on poistettava käytöstä kaikki käyttämättömät ISA-laitteet (järjestelmissä, joissa ei ole ISA-paikkoja, ne ovat kuitenkin olemassa: nämä ovat COM1-, COM2-portit ja asema). Voit myös poistaa LPT-portin EPP- ja ECP-tilat käytöstä samalla, kun vapautat IRQ7-keskeytyksen. Kaikki BIOS-asetuksen keskeytysten muuttaminen suoritetaan osiossa "PCI / PNP Configuration". On kaksi tapaa vaikuttaa IRQ-numeroiden allokointiin: estää tietty numero ja määrittää rivinumero suoraan. Ensimmäinen menetelmä on käytettävissä kaikille BIOSeille, "IRQ x uses by:" -valikkokohteita säädetään (uusissa BIOSeissa se on piilotettu "IRQ Resources" -alivalikkoon). Ne keskeytykset, jotka tulisi määrittää yksinomaan ISA-laitteille, tulee asettaa arvoon "Legacy ISA". Näin ollen, kun jaetaan numeroita PCI-laitteille, nämä keskeytykset ohitetaan. Sinun tulee tehdä tämä, jos jokin ISA-laite joutuu itsepintaisesti samaan keskeytykseen PCI-laitteen kanssa, minkä vuoksi molemmat eivät toimi. Tässä tapauksessa sinun on löydettävä tämän IRQ:n numero ja estettävä se. PCI-laite siirtyy uuteen IRQ-numeroon, kun taas ISA-laite pysyy samana. Toinen tapa hallita IRQ-numeroita on suora osoitus, vaikkakin hieman monimutkaisempi kuin ensimmäinen, se on paljon tehokkaampi. On valitettavaa, että kaikki nykyaikaiset emolevyt eivät salli tätä toimintaa. Samassa BIOS Setup -alivalikossa voi olla kohteita, kuten "Slot X use IRQ" (muut nimet: "PIRQx use IRQ", "PCI Slot x priority", "INT Pin x IRQ"). Tämän vaihtoehdon avulla voit asettaa keskeytykset erikseen jokaiselle PCI- ja AGP-väylän laitteelle. Tässä tapauksessa on noudatettava seuraavia sääntöjä:

  • Jokainen PCI-paikka voi aktivoida enintään neljä keskeytystä - INT A, INT B, INT C ja INT D;
  • AGP-paikka voi aktivoida kaksi keskeytystä - INT A ja INT B;
  • On normaalia, että jokainen aikaväli on määritetty INT A:ksi. Loput keskeytyksistä varataan, jos PCI/AGP-laite vaatii useamman kuin yhden keskeytyksen tai jos pyydetty keskeytys on varattu;
  • AGP-paikka ja PCI-paikka 1 allokoivat samat keskeytykset;
  • Myös PCI-paikat 4 ja 5 jakavat samat keskeytykset;
  • USB käyttää PIRQ_4:ää.

Alla on taulukko, joka näyttää PIRQ:n (ohjelmoitavan keskeytyspyynnön) ja INT:n (keskeytys) välisen suhteen:

Signaali AGP-paikka
PCI-paikka 1
PCI-paikka 2 PCI-paikka 3 PCI-paikka 4
PCI-paikka 5
PIRQ_0 INT A INT D INT C INT B
PIRQ_1 INT B INT A INT D INT C
PIRQ_2 INT C INT B INT A INT D
PIRQ_3 INT D INT C INT B INT A

Normaalisti sinun tulee jättää vaihtoehto AUTO-asentoon. Mutta jos on tarpeen asettaa yksittäinen IRQ AGP- tai PCI-väylän laitteelle, on ensin määritettävä, mihin paikkaan laite on asennettu. Sitten voit asettaa pää-PIRQ:n taulukon perusteella. Esimerkiksi jos Verkkokortti on asetettu paikkaan 3, niin pää-PIRQ on PIRQ_2, koska kaikki paikat on mahdollisuuksien mukaan osoitettu INT A. Tämän jälkeen valitaan haluttu IRQ ja annetaan sille sopiva PIRQ-arvo. Muista vain, että BIOS yrittää määrittää PIRQ:n INT A:lle jokaiselle paikalle. Joten AGP- ja PCI 1 -paikoilla pää-PIRQ on PIRQ_0, kun taas PCI-paikan 2 pää-PIRQ on PIRQ_1 ja niin edelleen. Toisen kerran keskeytysnumerot allokoidaan käyttöjärjestelmä, vaikka Windows 9x alkaa häiritä BIOSin suorittamia toimia vain äärimmäisissä tapauksissa. Windows 98:ssa IRQ-jakelujärjestelmää hallitaan tavallisen laitehallinnan avulla. Järjestelmälaitteiden luettelosta sinun on löydettävä PCI-väylä.


Sen ominaisuuksissa on erityinen välilehti. Jos kaikki on asetettu oikein, miniportti mainitaan siellä ("onnistuneesti ladattu") ja PCI-väylänhallinta (Steering) otetaan käyttöön. Siten Windows "98:lla on keinot hallita keskeytysnumeroiden jakautumista fyysisten linjojen välillä. Mutta koska BIOS tekee useimmiten hyvää työtä tämän kanssa, tämä mekanismi ei ole mukana. Mutta joskus se on yksinkertaisesti välttämätöntä. Käytettäessä vanhentuneita ISA-laitteita jotka eivät tue Plug Technology & Play -toimintoa, BIOS ei välttämättä huomaa sitä, jolloin sen varaama keskeytys siirtyy PCI-laitteeseen - jälleen ristiriita. Sen ratkaisemiseksi sinun on varattava tarvittava keskeytys Windowsin laitehallinnassa "98.

Redundanssin lisäksi voit asettaa suoraan laitteen keskeytysnumeron. Tätä varten sinun on löydettävä "Resurssit" -välilehti sen ominaisuuksista, poistettava automaattinen viritys käytöstä ja yritettävä muuttaa määritettyä keskeytysnumeroa. Ole varovainen, tällainen toimenpide ei aina toimi ja voi joskus johtaa täysin arvaamattomiin tuloksiin.

Mutta Windows 2000:sta (sekä XP:stä) - erillinen keskustelu. Jos sinulla on melko moderni tietokone, se todennäköisesti tukee ACPI-määritysliittymää. Windows 2000 jättää tässä tapauksessa yleensä huomioimatta BIOSin toiminnot ja "jumittaa" kaikki PCI-laitteet yhteen loogiseen keskeytykseen. Yleensä tämä toimii hyvin (kun ISA-laitteita ei ole), mutta joskus voi ilmetä ongelmia. Jotta voit muuttaa keskeytysnumeroita, sinun on joko vaihdettava HAL-ydin tai asennettava Windows 2000 uudelleen, kun ACPI on poistettu käytöstä BIOSissa. Ydin korvataan seuraavasti: valitse laitehallinnassa "Tietokone / Tietokone, jossa on ACPI", jonka jälkeen sinun on vaihdettava ohjain muotoon " tavallinen tietokone" ja käynnistä uudelleen. Jos tämä ei auta, sinun on asennettava Windows 2000 uudelleen.

Viimeiset vinkit

Kun olet asentanut uuden käyttöjärjestelmän kaikilla laiteajureilla ja varmistanut, että se toimii ongelmitta, kannattaa kirjoittaa kaikki muistiin tietokoneen asetukset, varsinkin jos oletusasetuksiin on tehty muutoksia. On luotettavinta kirjoittaa tällaiset tiedot tavalliselle paperille. Tällaiset tiedot voivat olla erittäin hyödyllisiä tehtäessä muutoksia määritettyyn järjestelmään, sekä auttaa ratkaisemaan ongelmia, joita saattaa syntyä, jos kaikki asetukset "siirtyvät" uusia laitteita asennettaessa (tätä tapahtuu joskus myös). Ja mikä tärkeintä, muista: suurin osa esiin tulevista ongelmista johtuu tietokoneen omistajan alhaisesta tietokonelukutaidon tasosta. Siksi on aina pyrittävä itsekoulutukseen, niin ongelmia tulee vähemmän, eivätkä ne, jotka silti syntyvät, näytä ratkaisemattomilta.

Ristiriita on tilanne, jossa useat objektit yrittävät samanaikaisesti käyttää resurssia, joka on tarkoitettu vain yhdelle niistä. Keskeytysristiriita syntyy, kun useat laitteet käyttävät samaa keskeytyslinjaa pyyntösignaalin lähettämiseen, eikä kilpailevien pyyntöjen käsittelemiseen ole mekanismia. Jos kuljettaja vastaanottaessaan ohjausta työskentelee eri laitteen kanssa, joka lähetti pyynnön, joko tapahtuu vika tai jokin laitteista ei yksinkertaisesti toimi.

Herää kysymys: voivatko useat laitteet käyttää samaa keskeytyslinjaa vai onko se periaatteessa mahdotonta? Loppujen lopuksi, jos kuljettaja voi määrittää, keneltä pyyntö tarkalleen tuli, se vastaa vain "sen" laitteensa signaaleihin jättäen huomioimatta kaikki muut. Mutta tästä on sovittava etukäteen jollain tavalla, muuten konflikti on väistämätöntä.

Paikallinen PCI-väylä on suunniteltu keskeytyksen jakamista ajatellen. Jokaisen PCI-laitteen on toimittava oikein samalla keskeytyslinjalla muiden PCI-laitteiden kanssa. Tämä tehdään seuraavasti: signaalin läsnäolo keskeytyslinjalla ei määräydy etupuolella, ts. jännitetason muutos, vaan tietyn jännitteen olemassaolon tosiasia. Useat laitteet voivat muuttaa johdon jännitettä kerralla ja joutua ikään kuin huoltojonoon.

Näin ollen saman IRQ:n jakaminen useiden PCI-laitteiden kesken ei ole määritelmän mukaan ristiriita (kuva). Joskus kuitenkin tulee ongelmia. Ensinnäkin kaikki PCI-laitteet eivät toimi oikein samalla keskeytyslinjalla kuin muut. Toiseksi, joskus ajureilla on virheitä, jotka estävät heitä tunnistamasta signaalilähdettä oikein ja häiritsevät muita ohjaimia. Kolmanneksi kaikki laitteet eivät toimi PCI-väylällä; esimerkiksi ISA-laitteet, joihin kuuluvat esimerkiksi COM/LPT-porttiohjaimet, eivät voi jakaa keskeytyksiä muiden kanssa.

Riisi. Win2000 Device Manager IRQ Map - IO PIC Intel 440BX -piirisarja

Riisi. Win2000 IRQ MAP - IO APIC - KT266a-piirisarjan kautta

Tämän seurauksena tilanteet ovat mahdollisia, kun tietokone usein jäätyy, kieltäytyy suorittamasta mitään toimintoja tai jopa putoaa ns. "kuoleman siniselle näytölle".

Apic (Advanced Programmable Interrupt Controller)

Kuten yllä näkyy, keskeytyslinja on erittäin niukka resurssi tietokoneelle. Tietokoneteollisuuden kehittyessä erilaisten ulkoisten laitteiden määrä tietokoneessa kuitenkin kasvaa jatkuvasti. Esimerkiksi yhdellä emolevy voi olla 5-6 PCI-paikkaa, AGP-paikka, integroitu IDE-ohjain, integroitu SCSI-ohjain, integroitu 1/2-porttinen verkkosovitin jne. Ja kaikki nämä laitteet tarvitsevat keskeytyksiä. 16 IRQ-linjaa tuli vähitellen riittämättömäksi.

APIC on keskeytysohjain, jonka avulla voit käyttää 24 laitteistokeskeytystä 16 sijasta. 16 laitteistokeskeytyksen raja, joka ei ole muuttunut vuodesta 1982, esti asennusta henkilökohtaiseen tietokoneeseen lisälaitteita. Vuoden 2001 lopulla ilmestyivät ensimmäiset APIC-emolevyt.

Riisi. Keskeytä järjestelmä moniprosessoriympäristössä.

Edellisessä kuvauksessa viitattiin yhden prosessorin järjestelmiin suunniteltuihin PIC-kortteihin. Jos järjestelmä sisältää kaksi tai useampia prosessoreita, tämä lähestymistapa ei ole enää mahdollinen ja tarvitaan monimutkaisempia PIC-koodeja.

Kaikissa nykyaikaisissa x86-prosessoreissa on paikallinen APIC (paikallinen APIC). Jokaisessa paikallisessa APIC:ssä on 32-bittiset rekisterit, sisäinen kello, paikallinen ajastin ja kaksi ylimääräistä IRQ-linjaa, LINT0 ja LINT1, jotka on varattu paikallisille APIC-keskeytyksille. Kaikki paikalliset APIC:t on kytketty ulkoiseen I/O APIC:hen.

I/O APIC sisältää joukon 24 IRQ-linjaa, 24-suuntaisen keskeytyksen uudelleenohjaustaulukon, ohjelmoitavat rekisterit ja sanomalohkon viestien lähettämistä ja vastaanottamista varten APIC-väylällä. Toisin kuin 8259A:n IRQ-nastat, keskeytysprioriteetti ei ole sidottu pin-numeroon.

Jokainen keskeytyksen uudelleenohjaustaulukon merkintä voidaan ohjelmoida yksilöllisesti näyttämään keskeytysvektorin ja sen prioriteetin, mikä prosessori käsittelee keskeytyksen ja kuinka prosessori valitaan. Keskeytyksen uudelleenohjaustaulukon tietoja käytetään kääntämään jokainen ulkoinen signaali viestiksi, joka on osoitettu yhdelle tai useammalle paikalliselle APIC:lle APIC-väylän kautta.

Staattinen jakelu

IRQ-signaalin toimittaa paikallinen APIC, joka on lueteltu vastaavassa keskeytyksen uudelleenohjaustaulukossa. Keskeytys toimitetaan yhdelle tietylle CPU:lle, useille suorittimille tai kaikille suorittimille.

Dynaaminen allokointi

IRQ-signaali toimitetaan prosessorin paikalliselle APIC:lle, joka suorittaa prosessia alimmalla prioriteetilla.

Jokaisella paikallisella APIC:llä on ohjelmoitava työn prioriteettirekisteri, jota käytetään laskemaan nykyisen prosessin prioriteetti. Intel odottaa käyttöjärjestelmän ytimen päivittävän tämän rekisterin jokaisessa prosessikytkimessä.

Sen lisäksi, että järjestelmä jakaa keskeytykset usean APIC-prosessorin kesken, järjestelmä sallii CPU:n luoda prosessorien välisiä keskeytyksiä. Kun CPU haluaa lähettää keskeytyksen toiselle CPU:lle, se tallentaa keskeytysvektorin ja paikallisen APIC ID:n paikalliseen APIC:n keskeytyskomentorekisteriin (ICR). Viesti lähetetään sitten APIC-väylän kautta paikalliselle kohde-APIC:lle, joka antaa asianmukaisen keskeytyksen prosessorilleen.

Tällä hetkellä monet yksiprosessorijärjestelmät sisältävät I/O APIC-sirun, joka voidaan konfiguroida kahdella tavalla:

1. Normaalina 8259A PIC kytkettynä suorittimeen. Paikallinen APIC on poistettu käytöstä, ja kaksi riviä LINT0 ja LINT1 on määritetty INTR- ja NMI-nastoihin.

2. Tavallisena ulkoisena I/O APIC:na. Paikallinen APIC on käytössä ja kaikki ulkoiset keskeytykset vastaanotetaan I/O APIC:n kautta.

  • Alieva Elena Viktorovna, opiskelija
  • Ufa State Aviation Technical University
  • KESKEYTYSOHJAIN
  • OHJAIN
  • LAITTEISTON KESKEYS
  • KESKEYTTÄÄ

Keskeytyksellä tarkoitetaan tietojenkäsittelyn pääprosessin tilapäistä keskeytystä joidenkin suunniteltujen tai suunnittelemattomien toimintojen suorittamiseksi, jotka aiheutuvat laitteiston tai ohjelman toiminnasta. Keskeytysmekanismia tuetaan laitteistotasolla. Laitteistokeskeytykset tapahtuvat mikroprosessorin vastauksena fyysinen signaali jostain laitteesta (näppäimistö, järjestelmäkello, näppäimistö, HDD jne.), nämä keskeytykset ovat esiintymisajan suhteen asynkronisia, ts. tapahtuu satunnaisina aikoina. Keskeytysohjain on suunniteltu käsittelemään ja sovittelemaan oheislaitteilta keskusprosessorille saapuvia palvelupyyntöjä. Keskeytyksillä on määritelty prioriteetti, jonka avulla keskeytysohjain voi priorisoida yhden laitteen toiseen nähden tietyllä hetkellä. Nykyaikaisessa tietokoneessa on jopa 16 ulkoista ja oheislaitetta, jotka aiheuttavat keskeytyksiä.

  • Valmistusyrityksen varaston työnkulun automatisointi
  • Puhelut-teknologiat, ominaisuudet, sovellus ja tehokkuus
  • Lakiosaston tietojärjestelmän mallin kehittäminen tukea ja yrityssopimusten tekemistä varten

Johdanto

Keskeytyksellä tarkoitetaan tietojenkäsittelyn pääprosessin tilapäistä keskeytystä joidenkin suunniteltujen tai suunnittelemattomien toimintojen suorittamiseksi, jotka aiheutuvat laitteiston tai ohjelman toiminnasta. Nuo. se on prosessi, joka vaihtaa tilapäisesti mikroprosessorin toisen ohjelman suorittamiseen ja palaa sitten keskeytettyyn ohjelmaan. Painamalla näppäimistön näppäintä aloitamme välittömän kutsun ohjelmalle, joka tunnistaa näppäimen, syöttää koodinsa näppäimistön puskuriin, josta toinen ohjelma lukee sen. Nuo. joksikin aikaa mikroprosessori keskeyttää nykyisen ohjelman suorituksen ja siirtyy keskeytyskäsittelijään, ns. keskeytyskäsittelijään. Kun keskeytyskäsittelijä on suorittanut työnsä, keskeytetty ohjelma jatkaa suoritusta kohdasta, jossa se keskeytettiin. Keskeytyskäsittelyohjelman osoite lasketaan keskeytysvektoritaulukosta.

Keskeytysmekanismia tuetaan laitteistotasolla. Lähteen mukaan keskeytykset jaetaan:

  • laitteisto- syntyvät mikroprosessorin reaktiona jostain laitteesta (näppäimistö, järjestelmäkello, näppäimistö, kiintolevy jne.) tulevaan fyysiseen signaaliin, nämä keskeytykset ovat esiintymisajaltaan asynkronisia, ts. esiintyä satunnaisina aikoina;
  • ohjelmisto- kutsutaan keinotekoisesti vastaavan komennon avulla ohjelmasta (int), on tarkoitettu suorittamaan joitain käyttöjärjestelmän toimintoja, ovat synkronisia;
  • poikkeuksia- ovat mikroprosessorin reaktio epätyypilliseen tilanteeseen, joka syntyi mikroprosessorin sisällä jonkin ohjelmakäskyn suorittamisen aikana (jako nollalla, keskeytys TF-lipussa (jäljitys)) .

Laitteiston keskeytysjärjestelmä

Keskeytysjärjestelmä on ohjelmiston ja laitteiston yhdistelmä, joka toteuttaa keskeytysmekanismin.

Keskeytysjärjestelmän laitteisto sisältää:

  • mikroprosessorin lähdöt - niissä generoidaan signaaleja, jotka ilmoittavat mikroprosessorille joko, että jokin ulkoinen laite "pyytää huomiota siihen" (INTR), tai että tarvitaan kiireellistä tapahtuman tai katastrofaalisen virheen käsittelyä (NMI)
  • INTR - nasta tulokeskeytyspyyntösignaalille,
  • NMI - NMI-tulonasta
  • INTA - lähtösignaalin lähtö, joka vahvistaa, että mikroprosessori on vastaanottanut keskeytyssignaalin (tämä signaali syötetään 8259A-ohjainsirun samannimiseen tuloon;
  • ohjelmoitava keskeytysohjain 8259A (suunniteltu sieppaamaan keskeytyssignaaleja kahdeksasta eri ulkoisia laitteita; se on valmistettu mikropiirin muodossa; yleensä käytetään kahta sarjaan kytkettyä mikropiiriä, joten mahdollisten ulkoisten keskeytyslähteiden määrä on jopa 15 plus yksi ei-maskettava keskeytys; se on hän, joka generoi keskeytysvektorin numeron ja lähettää sen dataväylän);
  • ulkoiset laitteet (ajastin, näppäimistö, magneettilevyt jne.)

Keskeytä käsittely

Keskeytys laukaisee sarjan tapahtumia, joita esiintyy sekä laitteistossa että ohjelmistossa. Kuvassa 1 esittää näiden tapahtumien tyypillisen sarjan.

I/O-laitteen päätyttyä tapahtuu seuraavaa:

  • Laite lähettää keskeytyssignaalin prosessorille.
  • Ennen kuin prosessori vastaa keskeytykseen, sen on suoritettava nykyinen käsky (katso kuva 1).
  • Prosessori tarkistaa keskeytyksen, havaitsee sen ja lähettää keskeytyksen lähettäneelle laitteelle signaalin, että se on vastaanottanut keskeytyksen. Tämän signaalin avulla laite voi poistaa keskeytyssignaalinsa.
Kuva 1. Ohjelman ajoituskaavio: Hidas I/O

Nyt prosessorin on valmistauduttava siirtämään ohjaus keskeytyskäsittelijälle. Ensin sinun on tallennettava kaikki tärkeää tietoa jotta voit myöhemmin palata nykyisen ohjelman kohtaan, jossa se keskeytettiin. Vähimmäistieto on ohjelman tilasana ja seuraavan suoritettavan käskyn osoite, joka on ohjelmalaskurissa. Nämä tiedot työnnetään järjestelmän ohjauspinoon.

Kuva 2. Yksinkertaisen keskeytyksen käsittely

Seuraavaksi prosessorin ohjelmalaskuriin ladataan tämän keskeytyksen käsittelystä vastaavan keskeytyskäsittelijän ohjelman tuloosoite. Riippuen tietokoneen arkkitehtuurista ja käyttöjärjestelmän laitteesta, voi olla joko yksi ohjelma kaikkien keskeytysten käsittelemiseksi tai jokaiselle laitteelle ja keskeytystyypille voi olla erillinen käsittelijä. Jos keskeytyksiä käsitteleviä ohjelmia on useita, prosessorin on määritettävä, kumpi niistä kutsuu. Tämä informaatio voi sisältyä alkuperäiseen keskeytyssignaaliin; Muutoin tarvittavien tietojen saamiseksi prosessorin on kyselyllä kaikki laitteet vuorotellen määrittääkseen, kumpi lähetti keskeytyksen.

Heti kun uusi arvo ladataan ohjelmalaskuriin, prosessori siirtyy seuraavaan käskyjaksoon ja jatkaa sen hakemista muistista. Koska käsky haetaan paikasta, jonka numeron ohjelmalaskurin sisältö antaa, ohjaus siirtyy keskeytysrutiinille. Tämän ohjelman suorittaminen sisältää seuraavat toiminnot.

Ohjelmalaskurin sisältö ja keskeytetyn ohjelman tilasana on jo tallennettu järjestelmäpinoon. Tämä ei kuitenkaan ole kaikki tiedot, jotka liittyvät suoritettavan ohjelman tilaan. Sinun on esimerkiksi tallennettava prosessorirekisterien sisältö, koska keskeytyskäsittelijä saattaa tarvita näitä rekistereitä. Siksi on tarpeen tallentaa kaikki tiedot ohjelman tilasta. Tyypillisesti keskeytyskäsittelijä aloittaa työntämällä kaikkien rekisterien sisällön pinoon. Muita tallennettavia tietoja käsitellään luvussa 3, Prosessin kuvaus ja ohjaus. Kuvassa näytetään yksinkertainen esimerkki, jossa käyttäjäohjelma keskeytyy paikasta N tulleen käskyn suorittamisen jälkeen. Pinoon työnnetään kaikkien rekisterien sisältö sekä seuraavan käskyn (N + 1) osoite, yhteensä M sanaa. . Pinon osoitin päivitetään osoittamaan pinon uuteen yläosaan. Myös ohjelmalaskuri päivitetään, mikä osoittaa keskeytyspalvelurutiinin alkamisen.

Nyt keskeytyskäsittelijä voi aloittaa työnsä. Keskeytyksen käsittelyprosessi sisältää I/O-toimintoihin tai muihin keskeytyksen aiheuttaneisiin tapahtumiin liittyvien tilatietojen tarkistamisen. Tämä voi sisältää myös lisäohjeiden tai ilmoitusviestien lähettämisen I/O-laitteille.

Kun keskeytyksen käsittely on valmis, aiemmin tallennetut arvot haetaan pinosta, jotka syötetään uudelleen rekistereihin, jolloin ne palaavat tilaan, jossa ne olivat ennen keskeytystä.

Viimeinen vaihe on palauttaa ohjelman tilasana ja ohjelmalaskurin sisältö pinosta. Tämän seurauksena keskeytetyn ohjelman seuraava komento suoritetaan.

Koska keskeytys ei ole ohjelmasta kutsuttu aliohjelma, täydellisen palautuksen kannalta on tärkeää tallentaa kaikki keskeytetyn ohjelman tilatiedot. Keskeytys voi kuitenkin tapahtua milloin tahansa ja missä tahansa käyttäjäohjelmassa. Tämä tapahtuma on arvaamaton.

Keskeytysohjain

Keskeytysohjain on suunniteltu käsittelemään ja sovittelemaan oheislaitteilta keskusprosessorille saapuvia palvelupyyntöjä. Analogisesti keskeytysohjaimen toimintoja voidaan verrata jonkun pomon sihteeriin. Sihteerin on päätettävä pomon antamien prioriteettien ja vierailijan aseman perusteella, kumpi vierailijoista päästää pomolle ensin ja kumpi sitten. Joten tietokonejärjestelmässä on mahdollista, että useat oheislaitteet ovat lähettäneet keskeytyssignaalin tai keskeytyspyynnön. Tietokonekirjallisuudessa tätä signaalia kutsutaan IRQ:ksi (Interrupt Request).

Kuten edellä mainittiin, keskeytyksillä on tietty prioriteetti, jonka ansiosta keskeytysohjaimet voivat antaa etusijalle yhden laitteen tiettynä aikana eikä toista. Nykyaikaisessa tietokoneessa on jopa 16 ulkoista ja oheislaitteet jotka aiheuttavat keskeytyksiä. Tässä laitteet:
–IRQ 0, järjestelmäajastin; -IRQ 1, näppäimistö; –IRQ 2, käytetään peräkkäisten laitteiden kyselyihin; -IRQ 8, reaaliaikainen kello; –IRQ 9, varattu; –IRQ 10, varattu; –IRQ 11, varattu; –IRQ 12, ps/2 – hiiri; –IRQ 13, apuprosessori; –IRQ 14, kiintolevyohjain; –IRQ 15, varattu; –IRQ 3, portit COM2, COM4; –IRQ 4, portit COM1, COM3; -IRQ 5, LPT2-portti; –IRQ 6, ajoohjain; –IRQ 7, LPT1-portti, tulostin.

Tässä signaalit on lueteltu tärkeysjärjestyksessä alenevassa järjestyksessä. Näet, että IRQ 2:n jälkeen seuraa IRQ 8. Tosiasia on, että aikoinaan keskeytysohjain koostui kahdesta mikropiiristä, joista toinen oli kytketty toiseen. Tämä toinen mikropiiri on kytketty IRQ 2 -linjaan muodostaen kaskadin. Se palvelee linjoja IRQ8-IRQ 15. Ja sitten seuraavat ensimmäisen mikropiirin linjat.

Keskeytysohjaimen toiminta

Keskeytä ohjaimen toiminta Sen katsotaan perustuvan Intel 8259A -siruihin, joita käytettiin nykyisin hyvin vanhoissa tietokoneissa, joissa oli prosessori aina 386-sarjaan asti. Näissä tietokoneissa oli yleensä 2 8259A-sirua, jotka oli kytketty peräkkäin eli toisiinsa. Yksi keskeytyspyyntölinjan kautta suoraan prosessoriin kytketyistä mikropiireistä on isäntä tai isäntä. Loput, jotka on kytketty isäntään vastaavien johtopäätösten kautta, kutsutaan orjiksi.


Kuva 3. Keskeytysohjaimien kytkentäkaavio ja niiden vuorovaikutus keskusprosessorin kanssa

Kuvassa 3 on esitetty keskeytysohjaimien kytkentäkaavio ja niiden vuorovaikutus keskusprosessorin kanssa. Oheislaitteiden tai orjaohjaimien keskeytyssignaalit syötetään isäntäohjaimen tuloihin IR0–IR7. Pääohjaimen sisäinen logiikka käsittelee saapuvat pyynnöt prioriteetin suhteen. Jos laitepyynnön prioriteetti on riittävä, ohjaimen lähtöön INT muodostetaan signaali, joka syötetään prosessorin tuloon INTR. Muussa tapauksessa pyyntö estetään.

Jos prosessori sallii keskeytykset, niin nykyisen käskyn suorittamisen jälkeen se generoi INTA-linjalle signaalisarjan, joka asettaa orjaohjaimen immuunitilaan tulevia uusia keskeytyspyyntöjä vastaan ​​ja lisäksi tiedot ohjaimen sisäiset rekisterit lähetetään datalinjalle, josta prosessori tunnistaa keskeytystyypin.

Prosessori antaa keskeytysluvan keskeytysohjaimelle väyläohjaimen kautta. RD-signaalin tarkoituksena on varmistaa, että keskeytysohjain sijoittaa sisäisten rekisterien sisällön dataväylään. WR-signaalissa keskeytysohjain päinvastoin vastaanottaa dataa samannimiseltä väylältä ja kirjoittaa ne sisäisiin rekistereihin. Vastaavasti tämä vaikuttaa keskeytysohjaimen toimintatapaan.

CS-tulo on kytketty osoiteväylään ja tämä signaali identifioi tietyn keskeytysohjaimen. Tulo A0 osoittaa keskeytysohjaimen porttiin I/O-tilassa.

Tulot IR0–IR7 on suunniteltu vastaanottamaan keskeytyspyyntöjä oheislaitteilta ja orjaohjaimista.

CAS0-CAS2-lähdöt on suunniteltu tunnistamaan tietty orjaohjain.

Artikkelissa käsitellään laitteiston keskeytyksiä ja laite, toiminnot, keskeytysohjaimen toiminta. Tämä keskeytysohjain ilmestyi ensimmäisiin PC-yhteensopiviin tietokoneisiin. Sen jälkeen sekä prosessorit että itse tietokone ovat muuttuneet monin tavoin, vaikka joitain kohtia on jäljellä. Siksi 8295A-keskeytysohjaimen organisaatiota harkittiin asian selkeyttämiseksi.

Yllä oleva kaavio näyttää signaalit, jotka tulevat paitsi orja- ja isäntäkeskeytyssäätimille, myös muille orjille. Kuitenkin tietokoneessasi tai kannettavassa tietokoneessasi on itse asiassa 2 keskeytysohjainta, kuten yllä mainittiin: isäntä ja orja. Mutta voit luoda omia tietokonejärjestelmiäsi käyttämällä jopa 64 orjakeskeytysohjainta tällä tavalla.

AT nykyaikaiset tietokoneet kauan sitten keskeyttää ohjaimen toiminnotälä suorita 8259A-siruja, mutta eteläinen silta. Kaikkien ohjelmien ja laitteiden osalta kaikki pysyy kuitenkin ennallaan. Lisäksi keskeytysohjain on ohjelmoitava ja sisäisiä rekistereitä ja portteja on käytettävä samalla tavalla kuin 8259A-ohjainta.

Johtopäätös

Tässä artikkelissa käsiteltiin keskeytyksiä, nimittäin keskeytyskäsittelyn laitteistoa ja keskeytyksen käsittelyn periaatetta. Myös keskeytyssäätimiä ja niiden toimintaperiaatetta tarkastellaan.

Keskeytyksellä tarkoitetaan tietojenkäsittelyn pääprosessin tilapäistä keskeytystä joidenkin suunniteltujen tai suunnittelemattomien toimintojen suorittamiseksi, jotka aiheutuvat laitteiston tai ohjelman toiminnasta. Keskeytysmekanismia tuetaan laitteistotasolla. Laitteistokeskeytykset syntyvät mikroprosessorin reaktiona jostain laitteesta (näppäimistö, järjestelmäkello, näppäimistö, kiintolevy jne.) tulevaan fyysiseen signaaliin, nämä keskeytykset ovat esiintymisajaltaan asynkronisia, ts. tapahtuu satunnaisina aikoina.

Keskeytysohjain on suunniteltu käsittelemään ja sovittelemaan oheislaitteilta keskusprosessorille saapuvia palvelupyyntöjä. Keskeytyksillä on tietty prioriteetti, mikä sallii keskeytysohjain antaa tiettynä ajankohtana etusija yhdelle laitteelle toiselle. Nykyaikaisessa tietokoneessa on jopa 16 ulkoista ja oheislaitetta, jotka aiheuttavat keskeytyksiä.

Bibliografia

  1. Luento. Keskeyttää. Sähköposti Resurssi. http://hromatron.narod.ru/_lekcii/prerivania_lekcia_g2013.htm
  2. Järjestelmä keskeyttää | Laitteistokeskeytys | Keskeytyksen käsittely http://life-prog.ru/view_os.php?id=16
  3. Keskeytysohjain. Sähköposti Resurssi http://sdelaycomputersam.ru/Controller_irq.php,
  4. Keskeyttää. Keskeytysohjain. Laite, toiminnot, työ. Sähköposti Resurssi http://sdelaycomputersam.ru/Controller_irq.php
  5. Intel 8259A -keskeytysohjaimen rakenne ja alustus

Luulen, että monet uteliaat käyttäjät ovat luultavasti törmänneet sellaiseen lyhenteeseen kuin IRQ useammin kuin kerran. Se löytyy esimerkiksi, jos haluat tutustua Windowsin Laitehallintaohjelmaan. Jos valitset minkä tahansa laitteen, esimerkiksi näppäimistön, valitse "Ominaisuudet" -valikkokohta hiiren oikealla painikkeella ja aktivoi näkyviin tulevassa ikkunassa "Resurssit"-välilehti, niin näet resurssiluettelossa merkintä IRQ 01.

Mikä on IRQ ja mihin se on tarkoitettu?

Lyhenne IRQ tarkoittaa Interrupt ReQuest (keskeytyspyyntö). Ymmärtääkseen, miksi sitä tarvitaan, on muistettava henkilökohtaisen tietokoneen työn organisoinnin yksityiskohdat.

Tietokoneen verenkiertojärjestelmä, jonka kautta prosessori ja muut laitteet vaihtavat tietoa, on järjestelmäväylä. Mutta yleisesti, miten prosessori pystyy erottamaan väylän kautta eri laitteilta tulevat tiedonkäsittelypyynnöt?

Tätä varten on olemassa laitteistokeskeytysjärjestelmä (IRQ). Jokaisella keskeytyksellä on tietty numero (numerointi alkaa 0:sta) ja se on määritetty tietylle laitteelle. Joten keskeytysnumero 1 on määritetty näppäimistölle, joten nimitys IRQ 01.

Kun laitteelta vastaanotetaan pyyntö, tietokone keskeyttää (siis itse termi "keskeytys") nykyisen tiedon käsittelyn ja alkaa käsitellä vasta vastaanotettua. Jos keskeytyksiä on useita, ne käsitellään kullekin niille määritetyn prioriteetin järjestyksessä. Yleensä mitä pienempi keskeytysnumero on, sitä suurempi on prosessorin prioriteetti tälle keskeytykselle, mutta tätä sääntöä ei aina noudateta.

Palvelee IRQ:n käsittelyä erityisellä sirulla, jota kutsutaan keskeytysohjaimeksi. Tämä mikropiiri on yleensä osa keskusyksikköä, ja joskus se on varattu erilliseksi siruksi emolevylle. Jokaisen keskeytyksen käsittelemiseksi BIOSissa on erityinen laiteohjelmisto, jota kutsutaan keskeytyskäsittelijäksi. Kaikkien käsittelijöiden osoitteet tallennetaan ns. keskeytysvektoritaulukkoon.

Aiemmin 8-bittinen oli yleinen XT-perheen ensimmäisissä tietokoneissa, joten laitteille oli tarjolla yhteensä 8 keskeytystä. 16-bittisen ISA-väylän myötä niiden määrä kasvoi 16:een.

Keskeytyspyynnön asettaminen

Minun on sanottava, että joillekin laitteille määritetyt keskeytykset eivät ole kiinteitä ja niitä voidaan muuttaa ohjelmallisesti. Esimerkiksi IRQ:ta käytetään yleisesti sarjassa Com-portti 2 voi myös käyttää laajennuspaikkaan asennettua modeemia. Nykyaikaisissa tietokoneissa ja käyttöjärjestelmissä, jotka tukevat PnP-standardia ja toimivat Windows-käyttöjärjestelmässä, IRQ-arvot laitteille, jotka on liitetty väyläpaikkoihin, valitaan automaattisesti.

Mutta asiat eivät olleet niin yksinkertaisia ​​ennen vanhaan, jolloin käyttäjän piti asettaa IRQ-arvo manuaalisesti monissa DOS-ohjelmissa. Esimerkiksi asennuksen yhteydessä äänikortti, käyttäjän piti valita vapaa keskeytys hyvin pienestä määrästä saatavilla olevia (yleensä se oli IRQ 5) ja määrittää tämä arvo käynnistettävässä ohjelmassa, esimerkiksi jossain pelissä.

Monissa BIOSeissa on mahdollista muuttaa oletusarvoisia IRQ-arvoja Setup-ohjelmassa. Tämä vaihtoehto löytyy yleensä IRQ-resurssit- tai PCI/PNP-kokoonpano-osiosta.

IRQ-arvon asettaminen laitteelle, joka on yhtä suuri kuin jonkin laitteen jo käytössä oleva IRQ-arvo, johtaa useimmissa tapauksissa jommankumman näistä laitteista tai molemmista kerralla toimimattomuuteen, ja joskus siihen liittyy tietokoneen jumiutuminen.

Nykyaikaisemmassa PCI-väylässä keskeytyksen ohjausjärjestelmää on muutettu radikaalisti ja keskeytyksen ohjausmahdollisuuksia on laajennettu. IRQ Sharing -teknologian ansiosta on myös tullut mahdolliseksi sijoittaa useita laitteita yhdelle keskeytyskanavalle, ja PCI-paikkoihin liitetyillä ulkoisilla laitteilla on kyky automaattisesti jakaa resursseja keskenään.

Lisäksi nykyaikaiset tietokoneet käyttävät yleensä kehittynyttä ohjelmoitavaa keskeytysohjainta (APIC, ), joka tukee 24 kanavaa Interrupt ReQuest. Kehittynyt keskeytysohjain on valmistettu kahden mikropiirin muodossa, joista toinen sijaitsee itse prosessorissa ja toinen emolevyllä. Tämä keskeytysohjain ilmestyi ensimmäisen kerran Pentium-prosessoreihin perustuvissa järjestelmissä. Vanhan keskeytysjärjestelmän tuki kuitenkin säilytettiin yhteensopivuussyistä. Seuraava askel keskeytyksen käsittelyn periaatteiden kehittämisessä on Message Signaled Interrupts -teknologia, jonka tuki ilmestyi Windows Vistasta alkaen Windows-käyttöjärjestelmälinjalle.

Älä sekoita laitteiston IRQ:ita BIOS-ohjelmiston keskeytyksiin, joista keskustellaan erillisessä artikkelissa. BIOS-ohjelmiston keskeytyksiä käytetään yleensä työn organisointiin ohjelmisto syöttö-tulostuslaitteilla ja on merkitty lyhenteellä INT. Monet niistä ovat toiminnaltaan samanlaisia ​​kuin laitteiston IRQ:t, mutta niillä on eri numerot.

Luettelo Interrupt ReQuest -numeroista 16-bittisen ISA-väylän vakiomallissa:

  1. Järjestelmän ajastin
  2. Näppäimistö
  3. Valinnainen keskeytysohjain (8-bittisen väylän yhteensopivuus)
  4. Com 1 ja 3 portit
  5. Com 2 ja 4 portit
  6. Ilmainen (8-bittisessä väylässä - kiintolevyohjain)
  7. Ohjain levykkeet(FDD)
  8. Rinnakkaisportti LPT
  9. CMOS reaaliaikainen kello
  10. Yhdessä IRQ 2:n kanssa
  11. Vapaa
  12. Vapaa
  13. PS/2 hiiriportti
  14. Apuprosessori (tällä hetkellä vähän käytössä)
  15. Ensimmäinen IDE-ohjain
  16. Toinen IDE-ohjain

Luettelo muista IRQ:ista, joita APIC Extended Interrupt Controller käyttää:

  1. USB-ohjain
  2. Integroitu audioalijärjestelmä (AC'97 tai HDA)
  3. USB-ohjain
  4. USB-ohjain
  5. Integroitu verkkokortti
  6. Vapaa
  7. Vapaa
  8. USB 2.0 ohjain

IRQ-numeroiden ja BIOS-keskeytysten vastaavuus:

Taulukko laitteiston IRQ:n ja ohjelmiston INT BIOSin välisestä vastaavuudesta

Johtopäätös

Joten tässä artikkelissa sait selville, mitä lyhenne IRQ tarkoittaa ja mitä laitteistokeskeytykset ovat. Ne ovat sisäänrakennettu mekanismi tietokoneresurssien allokoimiseksi, ja ne on suunniteltu järjestämään laitteiden pääsy keskusprosessoriin. Oikea IRQ-allokointi ja viritys välttää laitteiden väliset ristiriidat ja varmistaa vakaa työ järjestelmät.

IRQ:n prioriteettien hallinta

Laitteistokeskeytyspyyntöjen hallinta

Suurimmalle osalle suoraan emolevyyn liitetyistä komponenteista, mukaan lukien PCI-paikat, IDE-ohjaimet, sarjaportit, näppäimistöportti, jopa emolevyn CMOS, on määritetty erilliset IRQ:t. Laitteiston keskeytyspyyntö eli IRQ keskeyttää prosessorin normaalin toiminnan, jolloin laite voi toimia. Windows 7:n avulla voit priorisoida yhden tai useamman IRQ:n (jotka on yhdistetty yhteen tai useampaan laitteeseen), mikä saattaa parantaa näiden laitteiden suorituskykyä.

Vaiheet IRQ:n prioriteetin muuttamiseen

  1. Aloita suorittamalla System Information Utility (msinfo32.exe) ja avaa System Information -haara Hardware Resources Interrupts (IRQs) nähdäksesi, mitä IRQ:ita käytetään missäkin laitteissa.
  2. Avaa sitten Rekisterieditori (katso luku 3) ja siirry haaraan HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl.
  3. Luo uusi DWORD-arvo tähän osioon ja nimeä parametri IRQ#Priority, jossa # on sen IRQ-laitteen numero, jolle haluat asettaa prioriteetin (esimerkiksi IRQ13Priority vastaa IRQ 13:a, eli aritmeettista apuprosessoria). .
  4. Kaksoisnapsauta uutta arvoa ja anna prioriteettinumero. Syötä korkein prioriteetti 1, toiselle 2 jne. Varmista, että et syötä samaa numeroa kahdelle merkinnälle, äläkä yritä tehdä kaikkea kerralla, vaan kokeile yhtä tai kahta arvoa.
  5. Kun olet valmis, sulje Rekisterieditori ja käynnistä tietokone uudelleen.