Kāds ir irq pārtraukuma numurs? Sistēmas pārtraukumi ielādē procesoru

Konflikts ir situācija, kurā vairāki objekti vienlaikus mēģina piekļūt resursam, kas paredzēts tikai vienam no tiem. Pārtraukšanas konflikts rodas, ja vairākas ierīces izmanto vienu pārtraukuma līniju, lai nosūtītu pieprasījuma signālu, un nav mehānisma vienlaicīgu pieprasījumu apstrādei. Ja vadītājs, saņemot vadību, nedarbojas ar ierīci, kas nosūtīja pieprasījumu, tad rodas kļūme vai viena no ierīcēm vienkārši nedarbojas.

Rodas jautājums: vai vairākas ierīces var izmantot vienu pārtraukuma līniju, vai tas principā nav iespējams? Galu galā, ja vadītājs spēj noteikt, no kā tieši tika saņemts pieprasījums, tad tas reaģēs uz signāliem tikai no "savas" ierīces, ignorējot visus pārējos. Bet par to kaut kādā veidā iepriekš jāvienojas, pretējā gadījumā konflikts ir neizbēgams.

Vietējā PCI kopne tika izstrādāta, ņemot vērā pārtraukuma koplietošanu. Katrai PCI ierīcei pareizi jādarbojas vienā pārtraukuma līnijā ar citām PCI ierīcēm. Tas tiek darīts šādā veidā: faktu par signāla klātbūtni pārtraukuma līnijā nosaka nevis mala, t.i. sprieguma līmeņa izmaiņas, bet pats fakts par noteikta sprieguma klātbūtni. Vairākas ierīces var vienlaikus mainīt spriegumu līnijā, kļūstot par servisa rindu.

Tādējādi viena un tā paša IRQ koplietošana vairākās PCI ierīcēs pēc definīcijas nav pretrunīga (att.). Tomēr dažreiz rodas problēmas. Pirmkārt, ne visas PCI ierīces darbojas pareizi vienā pārtraukuma līnijā ar citām. Otrkārt, dažreiz autovadītājiem ir kļūdas, kuru dēļ viņi nevar pareizi noteikt signāla avotu, traucējot citiem draiveriem. Treškārt, ne visas ierīces darbojas PCI kopnē; piemēram, ISA ierīces, kas ietver, piemēram, COM / LPT portu kontrolierus, nevar koplietot pārtraukumus ar citiem.

Rīsi. Win2000 ierīču pārvaldnieka IRQ karte - IO PIC Intel 440BX mikroshēmojums

Rīsi. Win2000 IRQ MAP - IO APIC - izmantojot KT266a mikroshēmojumu

Tā rezultātā ir iespējamas situācijas, kad dators sāk bieži iesaldēt, atsakās veikt kādas funkcijas vai pat vienkārši iekrīt tā sauktajā " zils ekrāns no nāves ".

Apic (uzlabots programmējams pārtraukuma kontrolieris)

Kā parādīts iepriekš, pārtraukuma līnija ir ļoti ierobežots datora resurss. Tomēr, attīstoties datoru industrijai, dažādu ārējo ierīču skaits datorā nepārtraukti pieaug. Piemēram, vienā mātesplatē var būt 5-6 PCI sloti, AGP slots, iebūvēts IDE kontrolieris, iebūvēts SCSI kontrolieris, iebūvēts 1/2 portu tīkla adapteris utt. Un visām šīm ierīcēm ir nepieciešami pārtraukumi. Pakāpeniski trūka 16 IRQ līniju.

APIC Ir pārtraukuma kontrolieris, kas ļauj izmantot 24 aparatūras pārtraukumus, nevis 16. 16 aparatūras pārtraukumu ierobežojums, nemainīgs kopš 1982. gada, aizkavēja papildu ierīču instalēšanu personālajā datorā. 2001. gada beigās parādījās pirmās mātesplates ar APIC.

Rīsi. Pārtraukt sistēmu daudzprocesoru vidē.

Iepriekšējais apraksts bija paredzēts PIC, kas paredzēti vienprocesoru sistēmām. Ja sistēmā ir divi vai vairāki procesori, šī pieeja vairs nav pieļaujama, un ir nepieciešami sarežģītāki PIC.

Viss mūsdienu procesori x86 ietver vietējo APIC. Katram vietējam APIC ir 32 bitu reģistri, iekšējais pulkstenis, vietējais taimeris un divas papildu IRQ līnijas LINT0 un LINT1, kas rezervētas vietējiem APIC pārtraukumiem. Visi vietējie APIC ir savienoti ar ārēju I / O APIC.

I / O APIC satur 24 IRQ līniju komplektu, 24 ievades pārtraukuma maršrutēšanas tabulu, programmējamus reģistrus un ziņojumu bloku ziņojumu sūtīšanai un saņemšanai APIC kopnē. Atšķirībā no 8259A IRQ tapām, pārtraukuma prioritāte nav saistīta ar tapas numuru.

Katru ierakstu pārtraukšanas maršrutēšanas tabulā var ieprogrammēt atsevišķi, lai parādītu pārtraukuma vektoru un tā prioritāti, procesoru, kas apstrādās pārtraukumu, un to, kā šis procesors tiks izvēlēts. Pārtraukšanas maršrutēšanas tabulā esošā informācija tiek izmantota, lai pārvērstu katru ārējo signālu ziņojumā, kas adresēts vienam vai vairākiem vietējiem APIC, izmantojot APIC kopni.

Statiskais sadalījums

IRQ signāls tiek piegādāts vietējiem APIC, kas norādīti atbilstošajā pārtraukšanas novirzīšanas tabulas ierakstā. Pārtraukums tiek piegādāts vienam konkrētam CPU, vairākiem CPU vai visiem CPU.

Dinamiska piešķiršana

IRQ signāls tiek piegādāts procesora vietējam APIC, kas veic procesu ar zemāko prioritāti.

Katram vietējam APIC ir programmējams darba prioritāšu reģistrs, ko izmanto, lai aprēķinātu pašreizējā procesa prioritāti. Intel sagaida, ka šo reģistru mainīs operētājsistēmas kodols katrā procesa slēdzī.

Papildus pārtraukumu izplatīšanai starp procesoriem, multi-APIC sistēma ļauj CPU radīt starpprocesoru pārtraukumus. Kad CPU vēlas nosūtīt pārtraukumu citam CPU, tas saglabā pārtraukuma vektoru un mērķa vietējo APIC ID vietējā APIC pārtraukšanas komandu reģistrā (ICR). Pēc tam ziņojums tiek nosūtīts caur APIC kopni mērķa vietējam APIC, kas izsniedz atbilstošu pārtraukumu tā centrālajam procesoram.

Daudzās vienprocesoru sistēmās pašlaik ir I / O APIC mikroshēma, kuru var konfigurēt divos veidos:

1. Kā standarta 8259A PIC, kas saistīts ar CPU. Vietējais APIC ir atspējots, un divas līnijas LINT0 un LINT1 ir konfigurētas kā INTR un NMI tapas.

2. Kā standarta ārējais I / O APIC. Vietējais APIC ir iespējots, un visi ārējie pārtraukumi tiek saņemti, izmantojot I / O APIC.

  • Alieva Jeļena Viktorovna, students
  • Ufas Valsts aviācijas tehniskā universitāte
  • PĀRTRAUKŠANAS VADĪTĀJS
  • KONTROLERIS
  • Aparatūras pārtraukumi
  • PĀRTRAUKT

Pārtraukums nozīmē īslaicīgu galvenā aprēķina procesa pārtraukšanu, lai veiktu dažas plānotas vai neplānotas darbības, ko izraisījusi aparatūras vai programmas darbība. Pārtraukšanas mehānisms tiek atbalstīts aparatūras līmenī. Aparatūras pārtraukumi rodas kā mikroprocesora reakcija uz fizisku signālu no kādas ierīces (tastatūra, sistēmas pulkstenis, tastatūra, HDD utt.), šie pārtraukumi ir asinhroni pēc notikuma laika, t.i. notiek nejaušos laikos. Pārtraukšanas kontrolieris ir paredzēts, lai apstrādātu un izšķirtu ienākošos pakalpojumu pieprasījumus Centrālā procesora bloks no perifērijas ierīcēm. Pārtraukumiem ir noteikta prioritāte, kas ļauj pārtraukuma kontrolierim dot priekšroku Šis brīdis laiks vienai ierīcei, nevis citai. Mūsdienu datorā ir līdz 16 ārējām un perifērām ierīcēm, kas rada pārtraukumus.

  • Dokumentu plūsmas automatizācija ražošanas uzņēmuma noliktavā
  • Izsauc tehnoloģijas, funkcijas, pielietojumu un efektivitāti
  • Izstrādāt juridiskās nodaļas informācijas sistēmas modeli uzņēmuma atbalstam un līgumu slēgšanai

Ievads

Pārtraukums nozīmē īslaicīgu galvenā aprēķina procesa pārtraukšanu, lai veiktu dažas plānotas vai neplānotas darbības, ko izraisījusi aparatūras vai programmas darbība. Tie. tas ir process, kas īslaicīgi pārslēdz mikroprocesoru, lai izpildītu citu programmu, un pēc tam atgriežas pie pārtrauktās programmas. Nospiežot tastatūras taustiņu, mēs nekavējoties izsaucam programmu, kas atpazīst atslēgu, ievieto tās kodu tastatūras buferī, no kura to nolasa cita programma. Tie. mikroprocesors uz laiku pārtrauc izpildi pašreizējā programma un pārslēdzas uz pārtraukuma apstrādātāju, tā saukto pārtraukšanas apstrādātāju. Kad pārtraukuma apstrādātājs būs pabeidzis darbu, pārtrauktā programma atsāks izpildi no vietas, kur tā tika apturēta. Pārtraukuma apstrādātāja adrese tiek aprēķināta no pārtraukuma vektoru tabulas.

Pārtraukšanas mehānisms tiek atbalstīts aparatūras līmenī. Atkarībā no avota pārtraukumi ir sadalīti:

  • aparatūra- rodas kā mikroprocesora reakcija uz fizisku signālu no kādas ierīces (tastatūra, sistēmas pulkstenis, tastatūra, cietais disks utt.), šie pārtraukumi ir asinhroni to rašanās laikā, t.i. notiek nejauši;
  • programmatisks- tiek mākslīgi izsaukti ar attiecīgās programmas komandas palīdzību (int), ir paredzēti dažu operētājsistēmas darbību veikšanai, ir sinhroni;
  • izņēmumi- vai mikroprocesora reakcija uz nestandarta situāciju, kas radusies mikroprocesora iekšpusē, izpildot noteiktu programmas komandu (dalīšana ar nulli, pārtraukšana ar TF karogu (izsekošana)).

Pārtrauciet sistēmas aparatūru

Pārtraukšanas sistēma ir programmatūras un aparatūras kolekcija, kas īsteno pārtraukšanas mehānismu.

Pārtraukšanas sistēmas aparatūra ietver:

  • mikroprocesora izejas - uz tām tiek ģenerēti signāli, kas paziņo mikroprocesoram vai nu par to, ka kāda ārēja ierīce "pieprasa uzmanību" (INTR), vai ka ir nepieciešama steidzama kāda notikuma vai katastrofālas kļūdas (NMI) apstrāde
  • INTR - kontakta pieprasījuma ievades signāla tapas,
  • NMI - tapa nemaskējamam pārtraukuma ievades signālam
  • INTA - izeja izejas signālam, kas apstiprina pārtraukuma signāla saņemšanu no mikroprocesora (šis signāls tiek ievadīts 8259A kontrollera mikroshēmas tāda paša nosaukuma ieejā;
  • 8259A programmējams pārtraukuma kontrolieris (paredzēts, lai fiksētu pārtraukuma signālus no astoņām dažādām ārējām ierīcēm; tas ir izgatavots mikroshēmas veidā; parasti tiek izmantotas divas sērijveidā savienotas mikroshēmas, tāpēc iespējamie avotiārējie pārtraukumi līdz 15 plus viens nemaskējams pārtraukums; tas ir tas, kurš veido pārtraukuma vektora numuru un izdod tā datu kopni);
  • ārējās ierīces (taimeris, tastatūra, magnētiskie diski utt.)

Pārtrauciet apstrādi

Pārtraukums izraisa virkni notikumu, kas notiek gan aparatūrā, gan programmatūru... Att. 1 parāda tipisku šo notikumu secību.

Kad I / O ierīce ir pabeigta, notiek šādas darbības:

  • Ierīce nosūta procesora pārtraukuma signālu.
  • Pirms reaģēt uz pārtraukumu, procesoram ir jāpabeidz pašreizējās komandas izpilde (sk. 1. attēlu).
  • Procesors pārbauda, ​​vai ir pārtraukums, nosaka to un nosūta ierīci, kas nosūtīja šo pārtraukumu, paziņojot par veiksmīgas saņemšanas signālu. Šis signāls ļauj ierīcei notīrīt pārtraukuma signālu.
Programmas laiks: lēna I / O

Tagad procesoram ir jāsagatavojas kontroles nodošanai pārtraukuma apstrādātājam. Vispirms jums jāsaglabā viss svarīga informācija, lai vēlāk varētu atgriezties pašreizējās programmas vietā, kur tā tika apturēta. Minimālā nepieciešamā informācija ir programmas statusa vārds un nākamās izpildītās komandas adrese, kas atrodas programmu skaitītājā. Šie dati tiek pārsūtīti uz sistēmas vadības kaudzi.

2. attēls. Vienkārša pārtraukuma apstrāde

Turklāt pārstrādes apstrādātāja ievades adrese, kas ir atbildīga par šī pārtraukuma apstrādi, tiek ielādēta procesora programmu skaitītājā. Atkarībā no datora arhitektūras un operētājsistēmas ierīces var būt vai nu viena programma visu pārtraukumu apstrādei, vai arī katrai ierīcei un katram pārtraukuma veidam var būt sava apstrādes programma. Ja ir pieejamas vairākas programmas, lai apstrādātu pārtraukumus, procesoram ir jānosaka, kurai zvanīt. Šī informācija var būt iekļauta sākotnējā pārtraukšanas signālā; pretējā gadījumā, lai iegūtu nepieciešamo informāciju, procesoram pēc kārtas jāpārbauda visas ierīces, lai noteiktu, kura no tām nosūtīja pārtraukumu.

Tiklīdz programmas skaitītājā tiek ielādēta jauna vērtība, procesors pāriet uz nākamo instrukciju ciklu, sākot to izgūt no atmiņas. Tā kā komanda tiek izgūta no šūnas, kuras skaitu nosaka programmas skaitītāja saturs, vadība tiek nodota pārtraukšanas kārtībai. Šīs programmas izpilde ietver šādas darbības.

Programmu skaitītāja saturs un pārtrauktās programmas statusa vārds jau ir saglabāts sistēmas kaudzē. Tomēr šī nav visa informācija, kas attiecas uz izpildāmās programmas stāvokli. Piemēram, jums ir jāsaglabā procesora reģistru saturs, jo šie reģistri var būt nepieciešami pārtraukuma apstrādātājam. Tāpēc ir jāsaglabā visa informācija par programmas stāvokli. Parasti pārtraukumu apstrādātājs sāk, visu reģistru saturu ierakstot kaudzē. Cita informācija, kas būtu jāsaglabā, ir apskatīta 3. nodaļā "Procesu apraksts un kontrole". Att. ir parādīts vienkāršs piemērs, kurā lietotāja programma tiek pārtraukta pēc instrukcijas izpildes no šūnas N. Visu reģistru saturs, kā arī nākamās instrukcijas adrese (N + 1) kopā, veidojot M vārdus, ir uzgrūda uz kaudzes. Pēc tam kaudzes rādītājs tiek atjaunināts, norādot uz kaudzes jauno augšpusi. Tiek atjaunināts arī programmu skaitītājs, lai norādītu pārtraukuma rutīnas sākumu.

Pārtraukuma apstrādātājs tagad var sākt savu darbu. Pārtraukuma apstrāde ietver statusa informācijas pārbaudi saistībā ar I / O darbībām vai citiem notikumiem, kas izraisīja pārtraukumu. Tas var ietvert arī papildu norādījumu vai paziņojumu ziņojumu sūtīšanu uz I / O ierīcēm.

Pēc pārtraukuma apstrādes pabeigšanas no kaudzes tiek izlaistas iepriekš saglabātās vērtības, kuras atkal tiek ievietotas reģistros, tādējādi atjaunojot stāvokli, kādā tās bija pirms pārtraukuma.

Pēdējais solis ir atjaunot programmas statusa vārdu un programmas skaitītāja saturu no kaudzes. Tā rezultātā tiks izpildīta pārtrauktās programmas komanda.

Sakarā ar to, ka pārtraukums nav no programmas izsaukta apakšprogramma, pilnīgai atkopšanai ir svarīgi saglabāt visu pārtrauktās programmas stāvokli. Tomēr pārtraukums var notikt jebkurā laikā un jebkurā lietotāja programmas vietā. Šis notikums ir neparedzams.

Pārtraukt kontrolieri

Pārtraukšanas kontrolieris ir paredzēts, lai apstrādātu un izšķirtu no perifērijas ierīcēm ienākošos pakalpojumu pieprasījumus centrālajam procesoram. Pēc analoģijas pārtraukšanas kontroliera funkciju var salīdzināt ar kāda priekšnieka sekretāru. Sekretāram, pamatojoties uz priekšnieka norādītajām prioritātēm un paša apmeklētāja statusu, jāizlemj, kuru no apmeklētājiem vispirms uzņemt priekšniekam un kurš vēlāk. Tāpat datorsistēmā ir iespējams, ka vairākas perifērijas ierīces sūta pārtraukuma signālu vai pārtraukuma pieprasījumu. Datoru literatūrā šis signāls tiek apzīmēts kā IRQ (pārtraukšanas pieprasījums).

Kā minēts iepriekš, pārtraukumiem ir noteikta prioritāte, kas ļauj pārtraukuma kontrolieriem noteiktā laikā dot priekšroku vienai ierīcei, nevis citai. Mūsdienu datorā ir līdz 16 ārējiem un perifērijas ierīces pārtraukumu ģenerēšana. Šīs ierīces ir:
–IRQ 0, sistēmas taimeris; –IRQ 1, tastatūra; –IRQ 2, ko izmanto, lai vaicātu kaskādē savienotas ierīces; –IRQ 8, reālā laika pulkstenis; –IRQ 9, rezervēts; –IRQ 10, rezervēts; –IRQ 11, rezervēts; –IRQ 12, ps / 2 - pele; –IRQ 13, līdzprocesors; –IRQ 14, cietā diska kontrolieris; –IRQ 15, rezervēts; –IRQ 3, porti COM2, COM4; –IRQ 4, porti COM1, COM3; –IRQ 5, ports LPT2; –IRQ 6, disketes diskdzinis; –IRQ 7, LPT1 ports, printeris.

Šeit signāli ir uzskaitīti dilstošā prioritātes secībā. Jūs varat redzēt, ka pēc IRQ 2, kam seko IRQ 8. Fakts ir tāds, ka vienā reizē pārtraukuma kontrolieris sastāvēja no divām mikroshēmām, viena bija savienota ar otru. Šī otrā mikroshēma ir savienota ar IRQ 2 līniju, veidojot kaskādi. Tas apkalpo līnijas IRQ8 - IRQ 15. Un tad seko pirmās mikroshēmas līnijas.

Pārtrauciet kontroliera darbību

Pārtraukt kontrolierus tiek uzskatīts par mikroshēmu Intel 8259A, kas tika izmantoti tagad ļoti vecos datoros ar procesoriem līdz 386. sērijai. Šiem datoriem parasti bija 2 8259A mikroshēmas, kas savienotas kaskādē, tas ir, viena ar otru. Viena no mikroshēmām, kas caur pārtraukuma pieprasījuma līniju savienota tieši ar procesoru, ir galvenā vai galvenā. Pārējos, kas savienoti ar saimnieku caur līdzīgām tapām, sauc par vergiem.


3. attēls. Pārtraukuma kontrolieru savienojuma shēma un to mijiedarbība ar centrālo procesoru

3. attēlā parādīta pārtraukuma kontrolieru savienojuma shēma un to mijiedarbība ar centrālo procesoru. Pārtraukuma signāli no perifērijas ierīcēm vai vergu kontrolieriem tiek nosūtīti uz galvenā kontrollera ievadiem IR0 - IR7. Galvenā kontroliera iekšējā loģika apstrādā ienākošos pieprasījumus prioritātes ziņā. Ja ierīces pieprasījuma prioritāte ir pietiekama, tad kontrollera INT izeja ģenerē signālu procesora INTR ieejai. Pretējā gadījumā pieprasījums tiek bloķēts.

Ja procesors pieļauj pārtraukumus, tad pēc pašreizējās komandas izpildes pabeigšanas tas INTA rindā ģenerē signālu secību, kas padara vergu kontrolieri neaizsargātu pret ienākošajiem jaunajiem pārtraukuma pieprasījumiem, un papildus informāciju no kontroliera iekšējiem reģistriem tiek izvadīts datu līnijā no kontroliera iekšējiem reģistriem, ar kuru palīdzību procesors atpazīst pārtraukuma veidu.

Procesors pārsūtīšanas atļauju pārsūta pārtraukuma kontrolierim, izmantojot kopnes kontrolieri. RD signāls ir paredzēts pārtraukuma kontrolierim, lai ievietotu datu kopnē iekšējo reģistru saturu. WR signālā pārtraukšanas kontrolieris, gluži pretēji, saņem datus no tāda paša nosaukuma kopnes un ieraksta tos iekšējos reģistros. Attiecīgi tas ietekmē pārtraukuma kontroliera darbības režīmu.

CS ievade ir savienota ar adreses kopni, un šis signāls tiek izmantots, lai identificētu konkrētu pārtraukuma kontrolieri. Ievads A0 norāda uz pārtraukuma kontroliera portu I / O telpā.

Ieejas IR0 - IR7 ir paredzētas, lai saņemtu pārtraukuma pieprasījumus no perifērijas ierīcēm un vergu kontrolieriem.

Izejas CAS0 - CAS2 ir paredzētas, lai identificētu īpašu vergu kontrolieri.

Rakstā aplūkoti aparatūras pārtraukumi un ierīce, funkcijas, pārtraukuma regulatora darbība. Šis kontrolieris pārtraukumi parādījās pirmajos ar datoru saderīgos datoros. Kopš tā laika gan procesori, gan pats dators ir ļoti mainījušies, lai gan daži punkti ir saglabājušies. Tāpēc, lai padarītu to skaidrāku un tika apsvērta 8295A pārtraukuma kontroliera organizācija.

Iepriekš redzamā diagramma parāda signālus, kas nāk ne tikai uz vergu un galveno pārtraukšanas kontrolieri, bet arī uz citiem vergiem. Tomēr jūsu datoram vai klēpjdatoram faktiski ir 2 pārtraukuma kontrolieri, kā norādīts iepriekš: galvenais un vergs. Bet jūs varat izveidot savu datorsistēmas tādējādi izmantojot līdz 64 vergu pārtraukšanas kontrolieriem.

Mūsdienu datoros ilgu laiku pārtraukt kontroliera funkcijas to neveic mikroshēmas 8259A, bet gan dienvidu tilts. Tomēr visām programmām un ierīcēm viss paliek nemainīgs. Turklāt pārtraukuma kontrolieris ir programmējams, un iekšējiem reģistriem un portiem jābūt pieejamiem tāpat kā 8259A kontrolierim.

Secinājums

Šajā rakstā tika aplūkoti pārtraukumi, proti, aparatūras pārtraukšanas apstrāde un pārtraukšanas apstrādes princips. Apsvērti arī pārtraukuma kontrolieri un to darbības princips.

Pārtraukums nozīmē īslaicīgu galvenā aprēķina procesa pārtraukšanu, lai veiktu dažas plānotas vai neplānotas darbības, ko izraisījusi aparatūras vai programmas darbība. Pārtraukšanas mehānisms tiek atbalstīts aparatūras līmenī. Aparatūras pārtraukumi rodas kā mikroprocesora reakcija uz fizisku signālu no ierīces (tastatūra, sistēmas pulkstenis, tastatūra, cietais disks utt.); Šie pārtraukumi ir asinhroni to rašanās laikā, t.i. notiek nejaušos laikos.

Pārtraukt kontrolieri paredzēti, lai apstrādātu un izšķirtu no centrālās procesora ienākošos pakalpojumu pieprasījumus no perifērijas ierīcēm. Pārtraukumiem ir noteikta prioritāte, kas ļauj pārtraukuma kontrolieris noteiktā laikā dod priekšroku vienai ierīcei, nevis citai. Mūsdienu datorā ir līdz pat 16 ārējām un perifērām ierīcēm, kas rada pārtraukumus.

Bibliogrāfija

  1. Lekcija. Pārtrauc. E -pasts Resurss. http://hromatron.narod.ru/_lekcii/prerivania_lekcia_g2013.htm
  2. Sistēmas pārtraukumi | Aparatūras pārtraukšana | Pārtraukt apstrādi http://life-prog.ru/view_os.php?id=16
  3. Pārtraukt kontrolieri. E -pasts Resurss http://sdelaycomputersam.ru/Controller_irq.php,
  4. Pārtrauc. Pārtraukt kontrolieri. Ierīce, funkcijas, darbs. E -pasts Resurss http://sdelaycomputersam.ru/Controller_irq.php
  5. Intel 8259A pārtraukuma kontroliera E-resursa struktūra un inicializācija https://dev64.wordpress.com/2012/05/30/8259-programming/
Ir labi, ja pēc montāžas vai plānotās modernizācijas dators sāk darboties pirmo reizi un darbojas stabili un bez traucējumiem. Tas ir daudz sliktāk, ja rodas negaidītas problēmas - spontāna atsāknēšana un iesaldēšana, programmu avārijas, ierīču nedarbošanās vai "neredzamība" utt. Pirmais iemesls, kas šajā gadījumā parasti nāk prātā, ir pārtraukts konflikts. Vai mēs labi zinām šīs parādības būtību, vai esam pietiekami gatavi cīnīties pret to?

Kas ir IRQ
Pārtraukumi ir sistēmas mehānisms, kas reaģē uz jauniem notikumiem. Aparatūras pārtraukumi, kurus parasti sauc par IRQ (Interrupt ReQuest), ir fiziskie signāli, ar kuras palīdzību ierīces kontrolieris informē procesoru par nepieciešamību apstrādāt kādu pieprasījumu. Parasti pārtraukšanas apstrādes shēma izskatās šādi:
1) procesors saņem pārtraukuma signālu un tā numuru;
2) tiek izmantota īpaša tabula, lai atrastu par pārtraukuma apstrādi atbildīgās programmas adresi ar doto numuru - pārtraukuma apstrādātājs;
3) procesors tiek apturēts pašreizējais darbs un pārslēdzas uz apstrādātāja izpildi (vispārējā gadījumā tas ir sava veida draiveris);
4) vadītājs piekļūst ierīcei un pārbauda pārtraukuma cēloni;
5) tiek uzsāktas pieprasītās darbības - inicializācija, ierīces konfigurācija, datu apmaiņa utt.
6) draiveris iziet un procesors atgriežas pie pārtrauktā uzdevuma.
Acīmredzot, lai pārtraukšanas mehānisms darbotos pareizi, ir jāizpilda divi nosacījumi: pirmkārt, pieprasījuma signālam jāsasniedz procesors, un, otrkārt, apstrādātāja vadītājam pareizi jāreaģē uz šo signālu. Konflikta gadījumā otrais nosacījums nav izpildīts: pienāk pārtraukuma signāls, bet reakcija uz to izrādās nepareiza, kā rezultātā mums ir (labākajā gadījumā) nedarbojoša ierīce.

Konflikts
Mēs varam teikt, ka konflikts ir situācija, kurā vairāki objekti vienlaikus mēģina piekļūt resursam, kas paredzēts tikai vienam no tiem. Pārtraukuma strīds rodas, ja vairākas ierīces izmanto vienu pārtraukuma līniju, lai nosūtītu pieprasījuma signālu, un nav mehānisma vienlaicīgu pieprasījumu apstrādei. Ja vadītājs, saņemot vadību, nedarbojas ar ierīci, kas nosūtīja pieprasījumu, tad rodas kļūme vai viena no ierīcēm vienkārši nedarbojas.
Rodas jautājums: vai vairākas ierīces var izmantot vienu pārtraukuma līniju, vai tas principā nav iespējams? Galu galā, ja vadītājs spēj noteikt, no kā tieši tika saņemts pieprasījums, tad tas reaģēs uz signāliem tikai no "savas" ierīces, ignorējot visus pārējos. Bet par to kaut kādā veidā iepriekš jāvienojas, pretējā gadījumā konflikts ir neizbēgams.
Vietējā PCI kopne tika izstrādāta, ņemot vērā pārtraukuma koplietošanu. Katrai PCI ierīcei pareizi jādarbojas vienā pārtraukuma līnijā ar citām PCI ierīcēm. Tas tiek darīts šādā veidā: faktu par signāla klātbūtni pārtraukuma līnijā nosaka nevis mala, t.i. sprieguma līmeņa izmaiņas, bet pats fakts par noteikta sprieguma klātbūtni. Vairākas ierīces var vienlaikus mainīt spriegumu līnijā, kļūstot par servisa rindu.
Tādējādi viena un tā paša IRQ koplietošana starp vairākām PCI ierīcēm pēc definīcijas nav konflikts. Tomēr dažreiz rodas problēmas. Pirmkārt, ne visas PCI ierīces darbojas pareizi vienā pārtraukuma līnijā ar citām. Otrkārt, dažreiz autovadītājiem ir kļūdas, kuru dēļ viņi nevar pareizi noteikt signāla avotu, traucējot citiem draiveriem. Treškārt, ne visas ierīces darbojas PCI kopnē; piemēram, ISA ierīces, kas ietver, piemēram, COM / LPT portu kontrolierus, nevar koplietot pārtraukumus ar citiem. Lai būtu skaidrs, kā izvairīties vai atrisināt konfliktus, jums ir jāsaprot, kā tiek pārvaldīti IRQ.

Aparatūras pārtraukumu organizēšana personālajā datorā
Kā Jūs zinat, personālie datori sākās ar IBM datoru. Tās arhitektūrā bija iekļautas astoņas aparatūras pārtraukšanas (IRQ) līnijas, kuras kontrolēja ar īpašu kontrolieri. Katram no viņiem tika piešķirts numurs, kas noteica pārtraukuma prioritāti un tā apstrādātāja adresi (tā sauktais pārtraukšanas vektors). Jaunā arhitektūra - IBM PC AT - nodrošināja vēl astoņas pārtraukuma līnijas, kurām tika izmantots otrs kontrolieris, kas savienots ar vienu no pirmā kontrollera pārtraukuma līnijām. Diemžēl šī arhitektūra bija pēdējā pēc tam, kad IBM zaudēja spēju vadīt savas izveidotās platformas attīstību, tāpēc visos mūsdienu datoros joprojām ir tikai sešpadsmit pārtraukumi, no kuriem vienu izmanto otrais kontrolieris.
IBM PC AT datoram bija tikai viena kopne, pa kuru ierīces varēja sazināties ar procesoru un atmiņu - ISA. Lielākā daļa pārtraukuma līniju tika piešķirtas standarta ISA ierīcēm, pārējās tika rezervētas nākotnei. Kad pienāca šī nākotne, kļuva skaidrs, ka jaunais universāls autobuss PCI saņēma tikai četrus bezmaksas pārtraukumus. Tāpēc tika izgudrots gudrs mehānisms pārtraukumu koplietošanai (IRQ Sharing) un dinamiska skaitļu atkārtota definēšana (IRQ Steering vai Mapping).
PCI ierīces pārtraukšanas vadības mehānisma būtība ir šāda. Kopumā ir četras fiziskas PCI pārtraukšanas līnijas, ko sauc par PIRQ0, PIRQ1, PIRQ2 un PIRQ3. Tie ir savienoti ar pārtraukuma kontrolieri. Katrai PCI ierīcei, savukārt, ir četri savienotāji, ko sauc par INT A, INT B, INT C un INT D. Līnijas savienotājiem var savienot jebkurā secībā. Piemēram, pirmajai PCI slotā varat veikt šādu elektroinstalāciju: PIRQ0 - INT A, PIRQ1 - INT B, PIRQ2 - INT C, PIRQ3 - INT D. Un otro - citādi: PIRQ0 - INT B , PIRQ1 - INT C, PIRQ2 - INT D, PIRQ3 - INT A. Parasti ierīcei ir nepieciešama tikai viena pārtraukuma līnija, kas savienota ar INT A. Kad ierīce ir uzstādīta pirmajā slotā, tā izmanto PIRQ0 līniju, bet otrā slotā būs PIRQ1 līnija tajā pašā tapā. Tādējādi ierīces dažādās laika nišās izmantos dažādas fiziskas pārtraukšanas līnijas. Aparatūras konflikts starp tiem tiks novērsts.
AGP kopne, kas patiesībā ir specializēta PCI modifikācija, izmanto arī vienu no PIRQ līnijām - parasti PIRQ0.
Mūsdienu sistēmām nepietiek ar četrām līnijām, tāpēc jaunos mikroshēmojumos bieži tiek izmantotas astoņas PIRQ līnijas, kuras vienādā veidā dažādās kombinācijās ir savienotas ar PCI laika nišām un iebūvētajām ierīcēm.
PIRQ līnijas ir savienotas ar pārtraukuma kontrolieri. Viņiem, tāpat kā citām līnijām, tiek piešķirti loģiski IRQ numuri. Ja vienā fiziskajā līnijā ir vairākas ierīces (un tas ir pieļaujams), tad tām visām būs vienāds IRQ numurs. Ja ierīces atrodas dažādās fiziskās līnijās, tās joprojām var saņemt vienādus IRQ numurus. Parastie draiveri ļaus viņiem brīvi darboties, nezaudējot veiktspēju, jo PCI kopni joprojām var uzņemt tikai viena ierīce. Galvenais ir atpazīt, no kuras ierīces signāls nāca.
Pateicoties bēdīgi slavenajam Plug & Play mehānismam, PIRQ līniju numuri tiek piešķirti automātiski. Bet ir arī Plug & Play ISA ierīces. Viņiem ir arī iespēja automātiski iegūt IRQ numuru. Bet viņu pārtraukšanas līnija pieder tikai viņiem, un, ja kāda no PIRQ līnijām saņems tādu pašu numuru, radīsies neatrisināms konflikts.
Tāpēc mēs sapratām, ka PCI ierīcēm nevajadzētu būt IRQ konfliktu problēmām. Ja tie, protams, darbojas pareizi, un tas ne vienmēr notiek. Turklāt autovadītājiem jāatbalsta koplietošanas pārtraukšanas mehānisms. ISA ierīces neprot koplietot pārtraukuma līnijas un tāpēc ir konfliktu provokatori. Līdz ar to konfliktu novēršanas problēma tiek samazināta līdz pareizai numuru piešķiršanai (problēmu avots ir ISA ierīces un "greizie" draiveri) vai atdalīšanai pa dažādām fiziskām līnijām ("izliekti" PCI kontrolieri).
Apskatīsim, kā sistēmā tiek piešķirti numuri un kā mēs varam ietekmēt šo procesu.

Pārtraukt karti
Kā jau teicu, lielāko daļu IRQ numuru jau aizņem standarta ierīces vai drīzāk tās ir piešķirtas to pārtraukšanas līnijām. Apskatīsim pasūtījumu:
0 - sistēmas taimeris (numurs vienmēr ir aizņemts);
1 - tastatūra (numurs vienmēr ir aizņemts);
2 - otrais pārtraukuma kontrolieris (vienmēr aizņemts);
3 - COM2 ports (var atspējot un numuru var atbrīvot);
4 - COM1 ports (var atspējot un numuru var atbrīvot);
5 - LPT2 ports (parasti numurs ir brīvs);
6 - disketes kontrolieris (var tikt atspējots un numurs atbrīvots);
7 - LPT1 ports (ja nav EPP vai ECP režīmā, tad numurs ir brīvs);
8 - reālā laika pulkstenis (vienmēr aizņemts);
9 - bezmaksas;
10 - bezmaksas;
11 - bezmaksas;
12 - PS / 2 pele (var būt bez maksas, ja šādas peles nav);
13 - kopprocesors (vienmēr aizņemts);
14 un 15 - kontrolieris cietie diski(var atspējot, un numurs tiek atbrīvots).
Tipiskā sistēmā ir pieejami skaitļi 5, 7, 9-11, tas ir, pieci no piecpadsmit. Turklāt jūs varat droši atspējot COM2 un LPT1 portus, palielinot bezmaksas numuru skaitu līdz septiņiem. Bezmaksas nenozīmē, ka viņi nav aizņemti, vienkārši ir iespējama brīva sajaukšanās starp viņiem.
Jebkurai sistēmai ir trīs standarta PCI ierīces - ACPI, USB kontrolieri un videokarte, no kurām katrai būs viens numurs. Sarežģīta ierīce (piemēram, Skaņas karte) var būt nepieciešamas vairākas līnijas - INT A, INT B utt. to komponentiem, kas nebūs pretrunā viens ar otru (galu galā dažādas fiziskās līnijas), bet ar citām ierīcēm - viegli.
Jūs varat uzzināt, kā pārtraukuma numuri pašlaik tiek piešķirti vairākos veidos. Datora sāknēšanas sākumā parādās teksta konfigurācijas tabula. Tūlīt pēc tam ir PCI ierīču saraksts ar piešķirto IRQ numuru (skat. Ekrānuzņēmumu). Vēl viens veids darbojas operētājsistēmā Windows 9x. Vadības panelī ir ikona "Sistēma", bet izsauktajā sīklietotnē - cilne "Ierīces". Mēs izvēlamies ierīces "Dators" rekvizītus, un tur tiks uzskaitītas visas ierīces, norādot to IRQ (skat. Ekrānuzņēmumu).
Operētājsistēmā Windows 2000 mums nav piekļuves pārtraukumu pārvaldībai, tāpēc, lai apskatītu IRQ sarakstu, mums jāizmanto standarta informācijas utilīta (Vadības panelis / Administratīvie rīki / Datora pārvaldība / Sistēmas informācija / Aparatūras resursi).

BIOS IRQ piešķiršana
Sistēmā IRQ numuri starp fiziskajām līnijām tiek piešķirti divas reizes. Pirmo reizi sistēmas BIOS to veic sāknēšanas laikā. Katrai Plug & Play ierīcei (visām PCI, modernām ISA, integrētām ierīcēm) vai drīzāk tās pārtraukšanas līnijai tiek piešķirts viens no desmit iespējamiem numuriem. Ja nav pietiekami daudz skaitļu, vairākas rindas iegūst vienu kopīgu. Ja šīs ir PIRQ līnijas, tad nekas - normālu draiveru un operētājsistēmas atbalsta klātbūtnē (vairāk par to skatīt zemāk) viss darbosies. Un, ja vairākas ISA ierīces vai PCI un ISA ierīces iegūst vienādu numuru, tad konflikts ir vienkārši neizbēgams, un tad ir jāiejaucas izplatīšanas procesā.
Pirmkārt, jums ir jāatspējo visas neizmantotās ISA ierīces (sistēmās, kurās nav ISA laika nišu, tās arī ir) - porti COM1, COM2 un disketes. Varat arī atspējot LPT porta EPP un ECP režīmus, tad būs pieejams IRQ7 pārtraukums.
V BIOS iestatīšana mums ir nepieciešama sadaļa "PCI / PNP konfigurācija". Ir divi galvenie veidi, kā ietekmēt IRQ numuru piešķiršanu: bloķēt konkrētu numuru un tieši piešķirt PIRQ līnijas numuru.
Pirmā metode ir pieejama visām BIOS: atrodiet vienumu sarakstu "IRQ x izmanto:" (in jauna BIOS paslēpts apakšizvēlnē "IRQ resursi"). Pārtraukumi, kas jāpiešķir tikai ISA ierīcēm, ir jāiestata uz “Legacy ISA”. Tādējādi, piešķirot numurus PCI ierīcēm, šie pārtraukumi tiks izlaisti. Tas jādara, ja ISA ierīce joprojām tiek pārtraukta ar PCI ierīci, tāpēc abas nedarbojas. Tad mēs atrodam šī IRQ numuru un bloķējam to BIOS iestatījumos. PCI ierīce iet uz jauns numurs IRQ, bet ISA ierīce paliek. Konflikts atrisināts.
Otrs, ērtāks veids, kā kontrolēt IRQ numurus, ir tieša piešķiršana. Tajā pašā BIOS iestatīšanas apakšizvēlnē var būt tādi vienumi kā "Slots X use IRQ" (citi nosaukumi: "PIRQx use IRQ", "PCI Slot x priority", "INT Pin x IRQ").
Ar viņu palīdzību katrai no četrām PIRQ līnijām var piešķirt noteiktu numuru. Starp citu, jaunajā AwardBIOS 6.00 jūs varat precīzi redzēt, kuras ierīces (ieskaitot iebūvētās) izmanto šo vai citu līniju. Paskatieties tikai labā puse BIOS iestatīšanas ekrāns: fotoattēlā redzams, kā es novietoju kursoru virs vienuma "Slots 1/5 use IRQ no.", Un labajā pusē parādījās uzraksts "Display Contr.". Tas ir, pirmo PIRQ līniju izmanto videokarte. Ja tagad ievietošu kādu konkrētu numuru, nevis "Auto", videokarte tiks pārslēgta uz šo pārtraukumu.

IRQ numuru piešķiršana Windows rīki
Otro reizi tiek piešķirti pārtraukuma numuri operētājsistēma... Kā liecina mani eksperimenti, Windows "98 sāk traucēt BIOS veiktajām darbībām" omi tikai ārkārtējos gadījumos. Ja jums ir normāla BIOS, šeit aprakstītās metodes nav vajadzīgas.
Jāatzīmē, ka, lai IRQ koplietošanas un dinamiskās piešķiršanas mehānismi darbotos pareizi, sistēmai Windows ir jāatpazīst mikroshēmojums. mātesplate un lejupielādēja IRQ Miniport. Jo jaunāka ir Windows versija, jo vairāk mikroshēmojumu atbalsta savu miniportu (PCIIMP.PCI). Tomēr vienmēr vislabāk ir spēlēt to droši un instalēt jaunākos mikroshēmojuma draiverus.
Operētājsistēmā Windows 98 IRQ piešķiršanas sistēma tiek kontrolēta, izmantojot standarta ierīču pārvaldnieku. Sarakstā sistēmas ierīces jums jāatrod PCI kopne. Tās īpašībās ir īpaša cilne (skatiet ekrānuzņēmumu). Ja viss ir pareizi konfigurēts, minports tiks minēts tur ("veiksmīgi ielādēts") un vadība PCI kopne(Stūrēšana) tiks iespējota. Tādējādi operētājsistēmai Windows "98 ir līdzekļi, lai kontrolētu pārtraukto numuru sadalījumu starp fiziskajām līnijām. Bet, tā kā BIOS bieži vien ar to labi tiek galā, šis mehānisms nav iesaistīts.
Bet dažreiz tas ir vienkārši nepieciešams. Kā jau teicu iepriekš, PCI ierīcēm nevajadzētu konfliktēt, ja tās izmanto to pašu loģisko pārtraukumu. Vēl viena lieta ir ISA ierīces, kurās ietilpst arī COM un LPT porti. Ja ierīce nav Plug & Play, BIOS to var nepamanīt, PCI ierīcei norādot pārtraukumu, ar kuru tā ir aizņemta. Tad jums ir jārezervē pārtraukums. Tas tiek darīts dispečerā Windows ierīces"98: izvēlieties ierīci" Dators ", izsauciet tās rekvizītus, pārslēdzieties uz otro cilni. Tad viss ir skaidrs.
Papildus atlaišanai varat tieši iestatīt ierīces pārtraukuma numuru. Lai to izdarītu, tā rekvizītos jāatrod cilne "Resursi", atspējojiet to automātiska regulēšana un mēģiniet mainīt piešķirto pārtraukuma numuru.
Diemžēl tas ne vienmēr izdodas.
Windows 2000 ir īpaša sistēma. Ja Jums ir moderns dators tad tas droši vien atbalsta ACPI konfigurācijas saskarni. Šajā gadījumā Windows 2000 pilnībā ignorēs BIOS darbības un "pakarinās" visas PCI ierīces vienā loģiskā pārtraukumā. Kopumā tas darbosies labi (ja nav ISA), bet dažreiz rodas problēmas. Lai varētu mainīt pārtraukuma numurus, jums ir jāmaina HAL kodols vai jāpārinstalē sistēma Windows 2000 ar BIOS atspējotu ACPI. Kodola nomaiņa tiek veikta šādi: ierīču pārvaldniekā atlasiet "Dators" / "Dators ar ACPI", nomainiet draiveri uz " Standarta dators", restartējiet. Ja tas nedarbojas, jums būs jāpārinstalē Windows 2000 vēlreiz.
Es ceru, ka iepriekš minētā informācija jums palīdzēs cīņā pret aparatūras traucējumiem. Un atcerieties: lielākā daļa radušos problēmu ir saistītas ar zems līmenis datorprasme datora saimniekdators. Tāpēc jums vienmēr jācenšas pašizglītoties, tad būs mazāk problēmu, un tās, kas rodas, nešķitīs nešķīstošas.

Iespējams, visizplatītākais pārtraukuma konflikts (IRQ) ir saistīts ar mūsdienu integrēto COM2 sērijas portu mātesplates, un iekšējais modems (tas nozīmē, pilnvērtīgs iekšējais datora modems, nevis programmatūras modems, ko sauc arī par WinModem). Fakts ir tāds, ka pilnvērtīgam iekšējam modemam jau ir atbalsts noteiktai ostai; pēc noklusējuma šis ports ir piešķirts COM2, sistēma parasti arī iespējo otro seriālo portu. Tādējādi sistēmai ir divas identiskas ostas, kurās tiek izmantoti tie paši resursi (pārtraukumi un I / O portu adreses).

Šīs problēmas risinājums ir pavisam vienkāršs: ievadiet sistēmas BIOS iestatījumus un atspējojiet iebūvēto COM2 portu. Turklāt jūs varētu apsvērt iespēju atspējot COM1 portu, kas arī tiek reti izmantots. Neizmantoto COMx portu atspējošana ir viena no labāki veidi atbrīvošanas pārtraukumi (IRQ) citām ierīcēm.

Vēl viens izplatīts konflikts ir ar seriālajiem portiem. Standarta pārtraukuma kartēšanas tabulā jūs, iespējams, pamanījāt, ka IRQ3 ir piešķirts COM2 un IRQ4 ir piešķirts COM1. Problēma rodas, ja sistēmai tiek pievienoti papildu COM3 un / vai COM4 porti un tiem netiek manuāli piešķirti bezmaksas pārtraukumi (pēc noklusējuma tie izmanto tos pašus IRQ3 un IRQ4).

Papildu sarežģījumus rada fakts, ka dažas ostas kartes neļauj izvēlēties citus pārtraukumus, izņemot IRQ3 un IRQ4. Tā rezultātā, piešķirot IRQ3 COM4 un IRQ4 COM3, rodas konflikts ar COM1 un COM2, kas arī izmanto šos pārtraukumus: divas ostas nevar vienlaicīgi izmantot vienu un to pašu pārtraukuma vadības kanālu. Strādājot DOS, tas bija atļauts, jo tajā vienlaikus varēja veikt tikai vienu uzdevumu, bet operētājsistēmā Windows un OS / 2 tas ir pilnīgi neiespējami. Lai datorā izmantotu vairāk nekā divus paralēlus COM portus, ir nepieciešama daudzportu plate, kas papildus pārtraukumiem, kas numurēti ar 3 un 4, ļauj izmantot papildu pārtraukumus. Koplietošanas pārtraukumi principā ir pieņemami ierīcēm, kuras parasti nedarbojas vienlaicīgi (vai nepārtraukti). Porti neietilpst šajā ierīču kategorijā. Pārtraukumu var izmantot skenerim un modemam kopā, tomēr šajā gadījumā, ja tie tiek izmantoti vienlaikus, radīsies konflikts. Par laimi, lielākā daļa ierīču, kurās iepriekš tika izmantoti porti (piemēram, peles, etiķešu printeri un ārējie modemi) tagad izveidojiet savienojumu ar USB portiem, tāpēc ir problēmas ar nepieciešamību atbalstīt vairākus portus. mūsdienu lietotāji datoriem nevajadzētu parādīties.

Ja jums joprojām ir jāizmanto vairāki seriālie porti, labākais risinājums būs vairāku portu kartes iegāde, kas vai nu nodrošina iespēju iestatīt nekonfliktējošus pārtraukumus, vai arī satur savu procesoru, kas ļauj vienu sistēmas pārtraukumu sadalīt starp vairākām ostām. Dažām vecākām daudzportu kartēm bija ISA interfeiss, taču šodien tās ir aizstātas ar PCI kartēm, kas arī piedāvā veiktspējas priekšrocības.

Ja trūkst dažu tabulā minēto ierīču (piemēram, iebūvēts peles ports (IRQ12) vai otrs paralēlais ports (IRQ5)), to pārtraukumus var uzskatīt par pieejamiem. Piemēram, otrais paralēlais ports ir ārkārtīgi reti sastopams, tāpēc tam piešķirtais IRQ5 pārtraukums visbiežāk tiek izmantots skaņas adaptera kartei. Tāpat IRQ15 pārtraukums tiek izmantots sekundārajam IDE kontrolierim. Ja sistēmā nav pievienotas diska ierīces, kas pievienotas sekundārajam IDE kanālam, varat šo kontrolieri atspējot BIOS, tādējādi atbrīvojot citu pārtraukumu citām ierīcēm.

Jāatzīmē, ka vienkāršākais veids, kā pārbaudīt pārtraukuma iestatījumus, ir Windows ierīču pārvaldnieks. Operētājsistēmā Windows 95b ir programma HWDIAG un operētājsistēmā Windows 98 un jaunākās versijās jaunākās versijas- Informācija par konsoles sistēmu. Šīs utilītas ļauj iegūt detalizētu pārskatu par sistēmas resursu izmantošanu, kā arī instalētie draiveri ierīces un Windows reģistra ieraksti katrai ierīcei. V Windows sistēmas XP un Vista sistēmas informāciju nodrošina programma Msinfo32.

Lai nodrošinātu pēc iespējas lielāku kopīgu pārtraukumu skaitu modernā sistēmā bez ISA savienotājiem, strādājot ar sistēmas BIOS, rīkojieties šādi.

  1. Atspējojiet neizmantotos portus sistēmas BIOS. Piemēram, ja seriālo un paralēlo portu vietā tiek izmantoti USB porti, atspējojiet tos. Rezultātā var atlaist līdz trim pārtraukumiem.
  2. PCI / PnP ierīcēm pieejamo pārtraukumu sarakstā norādiet IRQ pārtraukumu, kas tika atbrīvots 1. darbībā. Atkarībā no BIOS versija atbilstošie parametri ir pieejami sadaļā PnP / PCI resursu izslēgšana vai PnP / PCI konfigurācija.
  3. Aktivizējiet opciju Reset Configuration Data, lai notīrītu IRQ maršrutēšanas tabulas CMOS atmiņā.
  4. Saglabājiet izmaiņas un izejiet no BIOS iestatīšanas programmas.

Ir labi, ja pēc montāžas vai plānotās modernizācijas dators sāk darboties pirmo reizi un darbojas stabili un bez traucējumiem. Tas ir daudz sliktāk, ja rodas negaidītas problēmas - spontāna atsāknēšana un iesaldēšana, programmu avārijas, ierīču nedarbošanās vai "neredzamība" utt. Pirmais iemesls, kas šajā gadījumā parasti nāk prātā, ir pārtraukts konflikts. Vai mēs labi zinām šīs parādības būtību, vai esam pietiekami gatavi cīnīties pret to?

Kas ir IRQ


Pārtraukumi ir sistēmas mehānisms, kas reaģē uz jauniem notikumiem. Aparatūras pārtraukumi, ko parasti sauc par IRQ (Interrupt ReQuest), ir fiziski signāli, kurus ierīces kontrolieris izmanto, lai informētu procesoru par kāda pieprasījuma apstrādi. Parasti pārtraukšanas apstrādes shēma izskatās šādi:
1) procesors saņem pārtraukuma signālu un tā numuru;
2) tiek izmantota īpaša tabula, lai atrastu par pārtraukuma apstrādi atbildīgās programmas adresi ar doto numuru - pārtraukuma apstrādātājs;
3) procesors aptur pašreizējo darbu un pāriet uz apstrādātāja izpildi (vispārējā gadījumā tas ir sava veida draiveris);
4) vadītājs piekļūst ierīcei un pārbauda pārtraukuma cēloni;
5) tiek uzsāktas pieprasītās darbības - inicializācija, ierīces konfigurācija, datu apmaiņa utt.
6) draiveris iziet un procesors atgriežas pie pārtrauktā uzdevuma.
Acīmredzot, lai pārtraukšanas mehānisms darbotos pareizi, ir jāizpilda divi nosacījumi: pirmkārt, pieprasījuma signālam jāsasniedz procesors, un, otrkārt, apstrādātāja vadītājam pareizi jāreaģē uz šo signālu. Konflikta gadījumā otrais nosacījums nav izpildīts: pienāk pārtraukuma signāls, bet reakcija uz to izrādās nepareiza, kā rezultātā mums ir (labākajā gadījumā) nedarbojoša ierīce.

Konflikts

Mēs varam teikt, ka konflikts ir situācija, kurā vairāki objekti vienlaikus mēģina piekļūt resursam, kas paredzēts tikai vienam no tiem. Pārtraukšanas konflikts rodas, ja vairākas ierīces izmanto vienu pārtraukuma līniju, lai nosūtītu pieprasījuma signālu, un nav mehānisma vienlaicīgu pieprasījumu apstrādei. Ja vadītājs, saņemot vadību, nedarbojas ar ierīci, kas nosūtīja pieprasījumu, tad rodas kļūme vai viena no ierīcēm vienkārši nedarbojas.
Rodas jautājums: vai vairākas ierīces var izmantot vienu pārtraukuma līniju, vai tas principā nav iespējams? Galu galā, ja vadītājs spēj noteikt, no kā tieši tika saņemts pieprasījums, tad tas reaģēs uz signāliem tikai no "savas" ierīces, ignorējot visus pārējos. Bet tas ir kaut kādā veidā iepriekš jānosaka, pretējā gadījumā konflikts ir neizbēgams.
Vietējā PCI kopne tika izstrādāta, ņemot vērā pārtraukuma koplietošanu. Katrai PCI ierīcei pareizi jādarbojas vienā pārtraukuma līnijā ar citām PCI ierīcēm. Tas tiek darīts šādā veidā: faktu par signāla klātbūtni pārtraukuma līnijā nosaka nevis mala, t.i. sprieguma līmeņa izmaiņas, bet pats fakts par noteikta sprieguma klātbūtni. Vairākas ierīces var vienlaikus mainīt spriegumu līnijā, kļūstot par servisa rindu.
Tādējādi viena un tā paša IRQ koplietošana starp vairākām PCI ierīcēm pēc definīcijas nav konflikts. Tomēr dažreiz rodas problēmas. Pirmkārt, ne visas PCI ierīces darbojas pareizi vienā pārtraukuma līnijā ar citām. Otrkārt, dažreiz autovadītājiem ir kļūdas, kuru dēļ viņi nevar pareizi noteikt signāla avotu, traucējot citiem draiveriem. Treškārt, ne visas ierīces darbojas PCI kopnē; piemēram, ISA ierīces, kas ietver, piemēram, COM / LPT portu kontrolierus, nevar koplietot pārtraukumus ar citiem. Lai būtu skaidrs, kā izvairīties vai atrisināt konfliktus, jums ir jāsaprot, kā tiek pārvaldīti IRQ.

Aparatūras pārtraukumu organizēšana personālajā datorā


Kā jūs zināt, personālie datori sākās ar IBM datoru. Tās arhitektūra ietvēra astoņas aparatūras pārtraukšanas (IRQ) līnijas, kuras kontrolēja ar īpašu kontrolieri. Katram no viņiem tika piešķirts numurs, kas noteica pārtraukuma prioritāti un tā apstrādātāja adresi (tā sauktais pārtraukšanas vektors). Jaunā arhitektūra - IBM PC AT - nodrošināja vēl astoņas pārtraukuma līnijas, kurām tika izmantots otrs kontrolieris, kas savienots ar vienu no pirmā kontrollera pārtraukuma līnijām. Diemžēl šī arhitektūra bija pēdējā pēc tam, kad IBM zaudēja spēju vadīt savas izveidotās platformas attīstību, tāpēc visos mūsdienu datoros joprojām ir tikai sešpadsmit pārtraukumi, no kuriem vienu izmanto otrais kontrolieris.
IBM PC AT datoram bija tikai viena kopne, pa kuru ierīces varēja sazināties ar procesoru un atmiņu - ISA. Lielākā daļa pārtraukuma līniju tika piešķirtas standarta ISA ierīcēm, pārējās tika rezervētas nākotnei. Kad pienāca šī nākotne, izrādījās, ka jaunais universālais PCI autobuss saņēma tikai četrus bezmaksas pārtraukumus. Tāpēc tika izgudrots gudrs mehānisms pārtraukumu koplietošanai (IRQ Sharing) un dinamiska skaitļu atkārtota definēšana (IRQ Steering vai Mapping).
PCI ierīces pārtraukšanas vadības mehānisma būtība ir šāda. Kopumā ir četras fiziskas PCI pārtraukšanas līnijas, ko sauc par PIRQ0, PIRQ1, PIRQ2 un PIRQ3. Tie ir savienoti ar pārtraukuma kontrolieri. Katrai PCI ierīcei, savukārt, ir četri savienotāji, ko sauc par INT A, INT B, INT C un INT D. Līnijas savienotājiem var savienot jebkurā secībā. Piemēram, pirmajai PCI slotā varat veikt šādu elektroinstalāciju: PIRQ0 - INT A, PIRQ1 - INT B, PIRQ2 - INT C, PIRQ3 - INT D. Un otro - citādi: PIRQ0 - INT B , PIRQ1 - INT C, PIRQ2 - INT D, PIRQ3 - INT A. Parasti ierīcei ir nepieciešama tikai viena pārtraukuma līnija, kas savienota ar INT A. Kad ierīce ir uzstādīta pirmajā slotā, tā izmanto PIRQ0 līniju, bet otrā slotā būs PIRQ1 līnija tajā pašā tapā. Tādējādi ierīces dažādās laika nišās izmantos dažādas fiziskas pārtraukšanas līnijas. Aparatūras konflikts starp tiem tiks novērsts.
AGP kopne, kas patiesībā ir specializēta PCI modifikācija, izmanto arī vienu no PIRQ līnijām - parasti PIRQ0.
Mūsdienu sistēmām nepietiek ar četrām līnijām, tāpēc jaunos mikroshēmojumos bieži tiek izmantotas astoņas PIRQ līnijas, kuras vienādā veidā dažādās kombinācijās ir savienotas ar PCI laika nišām un ierīcēm, kas iebūvētas plati.
PIRQ līnijas ir savienotas ar pārtraukuma kontrolieri. Viņiem, tāpat kā citām līnijām, tiek piešķirti loģiski IRQ numuri. Ja vienā fiziskajā līnijā ir vairākas ierīces (un tas ir pieļaujams), tad tām visām būs vienāds IRQ numurs. Ja ierīces atrodas dažādās fiziskās līnijās, tās joprojām var saņemt vienādus IRQ numurus. Parastie draiveri ļaus viņiem brīvi darboties, nezaudējot veiktspēju, jo PCI kopni joprojām var uzņemt tikai viena ierīce. Galvenais ir atpazīt, no kuras ierīces signāls nāca.
Pateicoties bēdīgi slavenajam Plug & Play mehānismam, PIRQ līniju numuri tiek piešķirti automātiski. Bet ir arī Plug & Play ISA ierīces. Viņiem ir arī iespēja automātiski iegūt IRQ numuru. Bet viņu pārtraukšanas līnija pieder tikai viņiem, un, ja kāda no PIRQ līnijām saņems tādu pašu numuru, radīsies neatrisināms konflikts.
Tāpēc mēs sapratām, ka PCI ierīcēm nevajadzētu būt IRQ konfliktu problēmām. Ja tie, protams, darbojas pareizi, un tas ne vienmēr notiek. Turklāt autovadītājiem jāatbalsta koplietošanas pārtraukšanas mehānisms. ISA ierīces neprot koplietot pārtraukuma līnijas un tāpēc ir konfliktu provokatori. Tāpēc konfliktu novēršanas problēma ir saistīta ar pareizu numuru piešķiršanu (problēmu avots ir ISA ierīces un "greizie" draiveri) vai nošķiršanu pa dažādām fiziskām līnijām ("izliekti" PCI kontrolieri).
Apskatīsim, kā sistēmā tiek piešķirti numuri un kā mēs varam ietekmēt šo procesu.

Pārtraukt karti

Kā jau teicu, lielāko daļu IRQ numuru jau ieņem standarta ierīces vai drīzāk piešķir to pārtraukšanas līnijām. Apskatīsim pasūtījumu:
0 - sistēmas taimeris (numurs vienmēr ir aizņemts);
1 - tastatūra (numurs vienmēr ir aizņemts);
2 - otrais pārtraukuma kontrolieris (vienmēr aizņemts);
3 - COM2 ports (var atspējot un numuru var atbrīvot);
4 - COM1 ports (var atspējot un numuru var atbrīvot);
5 - LPT2 ports (parasti numurs ir brīvs);
6 - disketes kontrolieris (var tikt atspējots un numurs atbrīvots);
7 - LPT1 ports (ja nav EPP vai ECP režīmā, tad numurs ir brīvs);
8 - reālā laika pulkstenis (vienmēr aizņemts);
9 - bezmaksas;
10 - bezmaksas;
11 - bezmaksas;
12 - PS / 2 pele (var būt bez maksas, ja šādas peles nav);
13 - kopprocesors (vienmēr aizņemts);
14 un 15 - cietā diska kontrolieris (var tikt atspējots un numurs atbrīvots).
Tipiskā sistēmā ir pieejami skaitļi 5, 7, 9-11, tas ir, pieci no piecpadsmit. Turklāt jūs varat droši atspējot COM2 un LPT1 portus, palielinot bezmaksas numuru skaitu līdz septiņiem. Bezmaksas nenozīmē, ka viņi nav aizņemti, vienkārši ir iespējama brīva sajaukšanās starp viņiem.
Jebkurai sistēmai ir trīs standarta PCI ierīces - ACPI, USB kontrolieri un videokarte, no kurām katrai būs viens numurs. Sarežģītai ierīcei (piemēram, skaņas kartei) var būt nepieciešamas vairākas līnijas - INT A, INT B utt. to komponentiem, kas nebūs pretrunā viens ar otru (galu galā dažādas fiziskās līnijas), bet ar citām ierīcēm - viegli.
Jūs varat uzzināt, kā pārtraukuma numuri pašlaik tiek piešķirti vairākos veidos. Datora sāknēšanas sākumā parādās teksta konfigurācijas tabula. Tūlīt pēc tam ir PCI ierīču saraksts ar piešķirto IRQ numuru (skat. Ekrānuzņēmumu). Vēl viens veids darbojas operētājsistēmā Windows 9x. Vadības panelī ir ikona "Sistēma", bet izsauktajā sīklietotnē - cilne "Ierīces". Mēs izvēlamies ierīces "Dators" rekvizītus, un tur tiks uzskaitītas visas ierīces, norādot to IRQ (skat. Ekrānuzņēmumu).
Operētājsistēmā Windows 2000 mums nav piekļuves pārtraukumu pārvaldībai, tāpēc, lai apskatītu IRQ sarakstu, mums jāizmanto standarta informācijas utilīta (Vadības panelis / Administratīvie rīki / Datora pārvaldība / Sistēmas informācija / Aparatūras resursi).

BIOS IRQ piešķiršana

Sistēmā IRQ numuri starp fiziskajām līnijām tiek piešķirti divas reizes. Pirmo reizi to veic sistēmas BIOS sistēmas sāknēšanas laikā. Katrai Plug & Play ierīcei (visām PCI, mūsdienu ISA, integrētām ierīcēm) vai drīzāk tās pārtraukšanas līnijām tiek piešķirts viens no desmit iespējamiem numuriem. Ja nav pietiekami daudz skaitļu, vairākas rindas iegūst vienu kopīgu. Ja šīs ir PIRQ līnijas, tad nekas - normālu draiveru un operētājsistēmas atbalsta klātbūtnē (vairāk par to skatīt zemāk) viss darbosies. Un, ja vairākas ISA ierīces vai PCI un ISA ierīces iegūst vienādu numuru, tad konflikts ir vienkārši neizbēgams, un tad ir jāiejaucas izplatīšanas procesā.
Pirmkārt, jums ir jāatspējo visas neizmantotās ISA ierīces (sistēmās, kurās nav ISA laika nišu, tās arī ir) - porti COM1, COM2 un disketes. Varat arī atspējot LPT porta EPP un ECP režīmus, tad būs pieejams IRQ7 pārtraukums.
BIOS iestatīšanā mums ir nepieciešama sadaļa "PCI / PNP konfigurācija". Ir divi galvenie veidi, kā ietekmēt IRQ numuru piešķiršanu: bloķēt konkrētu numuru un tieši piešķirt PIRQ līnijas numuru.
Pirmā metode ir pieejama visām BIOS: atrodiet vienumu sarakstu "IRQ x izmanto:" (jaunajā BIOS tas ir paslēpts apakšizvēlnē "IRQ resursi"). Pārtraukumi, kas jāpiešķir tikai ISA ierīcēm, ir jāiestata uz “Legacy ISA”. Tādējādi, piešķirot numurus PCI ierīcēm, šie pārtraukumi tiks izlaisti. Tas jādara, ja ISA ierīce joprojām tiek pārtraukta ar PCI ierīci, tāpēc abas nedarbojas. Tad mēs atrodam šī IRQ numuru un bloķējam to BIOS iestatījumos. PCI ierīce pāriet uz jauno IRQ numuru, bet ISA ierīce paliek. Konflikts atrisināts.
Otrs, ērtāks veids, kā kontrolēt IRQ numurus, ir tieša piešķiršana. Tajā pašā BIOS iestatīšanas apakšizvēlnē var būt vienumi formā "Slots X use IRQ" (citi nosaukumi: "PIRQx use IRQ", "PCI Slot x priority", "INT Pin x IRQ").
Ar viņu palīdzību katrai no četrām PIRQ līnijām var piešķirt noteiktu numuru. Starp citu, jaunajā AwardBIOS 6.00 varat redzēt, kuras ierīces (ieskaitot iebūvētās) izmanto noteiktu līniju. Vienkārši ieskatieties BIOS iestatīšanas ekrāna labajā pusē: fotoattēlā redzams, kā es novietoju kursoru virs vienuma "Slot 1/5 use IRQ no.", Un labajā pusē parādījās uzraksts "Display Contr.". Tas ir, pirmo PIRQ līniju izmanto videokarte. Ja tagad ievietošu kādu konkrētu numuru, nevis "Auto", videokarte tiks pārslēgta uz šo pārtraukumu.

IRQ piešķiršana, izmantojot Windows

Otro reizi pārtraukuma numurus piešķir operētājsistēma. Kā liecina mani eksperimenti, Windows "98 sāk traucēt BIOS veiktajām darbībām" omi tikai ārkārtējos gadījumos. Ja jums ir normāla BIOS, šeit aprakstītās metodes nav vajadzīgas.
Jāatzīmē, ka, lai IRQ koplietošanas un dinamiskās piešķiršanas mehānismi darbotos pareizi, sistēmai Windows ir jāatpazīst mātesplates mikroshēmojums un jāielādē IRQ Miniport. Jo jaunāka ir Windows versija, jo vairāk mikroshēmojumu atbalsta savu miniportu (PCIIMP.PCI). Tomēr vienmēr vislabāk ir spēlēt to droši un instalēt jaunākos mikroshēmojuma draiverus.
Operētājsistēmā Windows 98 IRQ piešķiršanas sistēmu kontrolē standarta ierīču pārvaldnieks. Sistēmas ierīču sarakstā atrodiet PCI kopni. Tās īpašībās ir īpaša cilne (skatiet ekrānuzņēmumu). Ja viss ir pareizi konfigurēts, tur tiks minēts miniports ("veiksmīgi ielādēts"), un tiks iespējota PCI kopņu pārvaldība (Stūrēšana). Tādējādi operētājsistēmai Windows "98 ir līdzekļi, lai kontrolētu pārtraukto numuru sadalījumu starp fiziskajām līnijām. Bet, tā kā BIOS arī ar to labi tiek galā, šis mehānisms nav iesaistīts.
Bet dažreiz tas ir vienkārši nepieciešams. Kā jau teicu iepriekš, PCI ierīcēm nevajadzētu konfliktēt, ja tās izmanto to pašu loģisko pārtraukumu. Vēl viena lieta ir ISA ierīces, kurās ietilpst arī COM un LPT porti. Ja ierīce nav Plug & Play, BIOS to var nepamanīt, PCI ierīcei norādot pārtraukumu, ar kuru tā ir aizņemta. Tad jums ir jārezervē pārtraukums. Tas tiek darīts Windows 98 ierīču pārvaldniekā: atlasiet datora ierīci, izsauciet tās rekvizītus, pārslēdzieties uz otro cilni.
Papildus atlaišanai varat tieši iestatīt ierīces pārtraukuma numuru. Lai to izdarītu, tā rekvizītos jāatrod cilne "Resursi", jāatspējo automātiskā konfigurācija un jāmēģina mainīt piešķirto pārtraukuma numuru.
Diemžēl tas ne vienmēr izdodas.
Windows 2000 ir īpaša sistēma. Ja jums ir moderns dators, iespējams, tas atbalsta ACPI konfigurācijas saskarni. Šajā gadījumā Windows 2000 pilnībā ignorēs BIOS darbības un "pakarinās" visas PCI ierīces vienā loģiskā pārtraukumā. Kopumā tas darbosies labi (ja nav ISA), bet dažreiz rodas problēmas. Lai varētu mainīt pārtraukuma numurus, jums ir jāmaina HAL kodols vai jāpārinstalē sistēma Windows 2000 ar BIOS atspējotu ACPI. Kodola nomaiņa tiek veikta šādi: ierīču pārvaldniekā atlasiet "Dators" / "Dators ar ACPI", nomainiet draiveri uz "Standarta dators", pārstartējiet. Ja tas nedarbojas, jums būs jāpārinstalē Windows 2000 vēlreiz.
Es ceru, ka iepriekš minētā informācija jums palīdzēs cīņā pret aparatūras traucējumiem. Un atcerieties: lielākā daļa radušos problēmu ir saistītas ar datora īpašnieka zemo datorprasmes līmeni. Tāpēc jums vienmēr jācenšas pašizglītoties, tad būs mazāk problēmu, un tās, kas rodas, nešķitīs nešķīstošas.