Probabil cea mai obișnuită întrerupere (IRQ) este legată de portul serial COM2 integrat care se găsește pe plăcile de bază moderne și modemul intern (adică un modem PC intern complet, nu un modem software, numit și WinModem). Faptul este că un modem intern cu drepturi depline are deja suport pentru un anumit port; În mod implicit, acest port este atribuit COM2, iar sistemul are de obicei activat și un al doilea port serial. Astfel, sistemul ajunge să aibă două porturi identice care folosesc aceleași resurse (întreruperi și adrese de porturi I/O).

Soluția la această problemă este destul de simplă: ar trebui să intrați în sistemul BIOS Setup și să dezactivați portul COM2 încorporat. În plus, ați putea lua în considerare dezactivarea portului COM1, care este, de asemenea, folosit rar. Dezactivarea porturilor COMx neutilizate este una dintre cele mai bune modalități de a elibera întreruperi (IRQ) pentru alte dispozitive.

Un alt conflict comun implică și porturile seriale. În tabelul standard de alocare a întreruperilor, este posibil să fi observat că IRQ3 este atribuit COM2 și IRQ4 este atribuit COM1. Problema apare atunci când sunt adăugate porturi COM3 și/sau COM4 suplimentare la sistem și întreruperile gratuite nu le sunt atribuite manual (în mod implicit folosesc aceleași IRQ3 și IRQ4).

Adăugând la complexitate, unele carduri de porturi nu permit selectarea altor întreruperi decât IRQ3 și IRQ4. Ca urmare, atribuirea IRQ3 la COM4 și IRQ4 la COM3 are ca rezultat un conflict cu COM1 și COM2 care folosesc și aceste întreruperi: cele două porturi nu pot împărtăși același canal de control al întreruperii în același timp. Când lucrați în DOS, acest lucru a fost posibil pentru că o singură sarcină putea fi efectuată la un moment dat, dar în Windows și OS/2 acest lucru este complet imposibil. Pentru ca un computer să poată folosi mai mult de două porturi COM paralele, este necesară o cartelă multiport care, pe lângă întreruperile numerotate 3 și 4, permite utilizarea unor întreruperi suplimentare. Partajarea întreruperilor este, în principiu, acceptabilă pentru dispozitivele care nu ar funcționa în mod normal simultan (sau continuu). Porturile nu se încadrează în această categorie de dispozitive. Puteți utiliza întreruperile scanerului și modemului împreună, dar chiar și în acest caz, dacă sunt utilizate simultan, va apărea un conflict. Din fericire, majoritatea dispozitivelor care utilizau anterior porturi (cum ar fi mouse-uri, imprimante de etichete și modemuri externe) se conectează acum la porturile USB, astfel încât utilizatorii moderni de computere nu ar trebui să se confrunte cu nevoia de a accepta mai multe porturi.

Dacă totuși trebuie să utilizați mai multe porturi seriale, cea mai bună soluție este să cumpărați un card multiport, care fie oferă posibilitatea de a seta întreruperi fără conflict, fie conține propriul procesor care vă permite să distribuiți o întrerupere a sistemului între mai multe porturi. Unele plăci multiport mai vechi aveau o interfață ISA, dar astăzi au fost înlocuite cu plăci PCI, care au și avantaje de performanță.

Dacă lipsește un dispozitiv menționat în tabel (de exemplu, portul mouse-ului încorporat (IRQ12) sau al doilea port paralel (IRQ5)), întreruperile acestora pot fi considerate disponibile. De exemplu, un al doilea port paralel poate fi găsit extrem de rar, astfel încât întreruperea IRQ5 alocată acestuia este cel mai des folosită pentru placa adaptorului de sunet. În mod similar, IRQ15 este utilizat pentru controlerul IDE secundar. Dacă sistemul nu are dispozitive de disc conectate la canalul IDE secundar, puteți dezactiva acest controler în BIOS, eliberând astfel o altă întrerupere pentru alte dispozitive.

Trebuie remarcat faptul că cel mai simplu mod de a verifica setările de întrerupere este în Windows Device Manager. În Windows 95b, există programul HWDIAG, iar în Windows 98 și mai târziu, există consola System Information. Aceste utilitare vă permit să obțineți un raport detaliat despre utilizarea resurselor în sistem, precum și driverele de dispozitiv instalate și intrările din registry Windows pentru fiecare dispozitiv. Pe sistemele Windows XP și Vista, informațiile despre sistem sunt furnizate de programul Msinfo32.

Pentru a asigura numărul maxim de întreruperi partajate posibile pe un sistem modern fără socket-uri ISA, urmați acești pași când rulați BIOS-ul sistemului.

  1. Dezactivați toate porturile neutilizate din BIOS-ul sistemului. De exemplu, dacă utilizați porturi USB în loc de porturi seriale și paralele, dezactivați-le. Ca rezultat, pot fi eliberate până la trei întreruperi.
  2. Specificați întreruperea IRQ eliberată la pasul 1 din lista de întreruperi disponibile pentru dispozitivele PCI/PnP. În funcție de versiunea BIOS, parametrii corespunzători sunt disponibili în secțiunea PnP/PCI Resource Exclusion sau PnP/PCI Configuration.
  3. Activați opțiunea Reset Configuration Data pentru a șterge tabelele de rutare IRQ din memoria CMOS.
  4. Salvați modificările și ieșiți din utilitarul de configurare BIOS.

Cred că mulți utilizatori curioși au întâlnit probabil o astfel de abreviere ca IRQ de mai multe ori. S-ar putea să îl vedeți, de exemplu, dacă doriți să vă uitați în programul Device Manager din Windows. Dacă selectați orice dispozitiv, de exemplu, o tastatură, selectați elementul de meniu „Proprietăți” folosind butonul din dreapta al mouse-ului, iar în fereastra care apare, activați fila „Resurse”, apoi în lista de resurse veți vedea inscripția IRQ 01.

Ce este IRQ și pentru ce este?

Abrevierea IRQ înseamnă Interrupt ReQuest. Pentru a înțelege de ce este necesar, ar trebui să vă amintiți detaliile despre cum funcționează un computer personal.

Sistemul circulator al unui computer, prin care procesorul și alte dispozitive fac schimb de informații, este magistrala de sistem. Dar cum este capabil procesorul să distingă cererile de procesare a informațiilor care vin prin autobuz de la diferite dispozitive?

Acesta este motivul pentru care există un sistem de întrerupere hardware (IRQ). Fiecare întrerupere are un număr specific (numerotarea începe de la 0) și este atribuită unui anumit dispozitiv. Deci, numărul de întrerupere 1 este atribuit tastaturii, de unde denumirea IRQ 01.

Când sosește o solicitare de la un dispozitiv, computerul întrerupe (de unde și termenul „întrerupere”) procesarea informațiilor curente și începe procesarea informațiilor nou primite. Dacă există mai multe întreruperi, atunci acestea sunt procesate în ordinea priorităților atribuite fiecăruia dintre ele. De regulă, cu cât numărul de întreruperi este mai mic, cu atât dispozitivul atribuit acestei întreruperi are prioritate mai mare pentru procesor, dar această regulă nu este întotdeauna respectată.

Procesarea IRQ este gestionată de un cip special numit controler de întrerupere. De regulă, acest cip face parte din procesorul central și, uneori, este separat într-un cip separat pe placa de bază. Pentru a gestiona fiecare întrerupere din BIOS, există un firmware special numit handler de întrerupere. Adresele tuturor manipulatorilor sunt stocate în așa-numitul tabel de vectori de întrerupere.

Anterior, în primele computere din familia XT, 8 biți era obișnuit, așa că un total de 8 întreruperi erau disponibile pentru dispozitive. Odată cu apariția magistralei ISA pe 16 biți, numărul acestora a crescut la 16.

Configurarea cererii de întrerupere

Trebuie spus că întreruperile atribuite unor dispozitive nu sunt fixe și pot fi modificate în software. De exemplu, standardul IRQ utilizat de portul serial Com 2 poate fi folosit și de un modem instalat în slotul de expansiune. În computerele și sistemele de operare moderne care acceptă standardul PnP și rulează Windows, valorile IRQ pentru dispozitivele conectate la sloturile de magistrală sunt selectate automat.

Dar nu totul era atât de simplu pe vremuri, când utilizatorul trebuia să seteze manual valoarea IRQ în multe programe care rulau sub sistemul de operare DOS. De exemplu, la instalarea unei plăci de sunet în sistem, utilizatorul trebuia să selecteze o întrerupere gratuită dintr-un număr foarte mic de cele disponibile (de regulă, era IRQ 5) și să specifice această valoare în programul lansat, pt. de exemplu, într-un joc.

Multe BIOS au capacitatea de a modifica valorile implicite IRQ în programul de configurare. De obicei, această opțiune se află în secțiunile IRQ Resources sau PCI/PNP Configuration.

Setarea unei valori IRQ pentru un dispozitiv egală cu valoarea unui IRQ deja ocupat de un dispozitiv duce în majoritatea cazurilor la inoperabilitatea unuia dintre aceste dispozitive sau a ambelor simultan și, uneori, poate duce la înghețarea computerului.

În magistrala PCI mai modernă, sistemul de gestionare a întreruperilor a fost schimbat radical, iar capacitățile de gestionare a întreruperilor au fost extinse. Datorită tehnologiei IRQ Sharing, a devenit posibilă plasarea mai multor dispozitive pe un canal de întrerupere, iar dispozitivele externe conectate la sloturile PCI au capacitatea de a distribui automat resursele între ele.

În plus, computerele moderne folosesc de obicei un controler de întrerupere programabil avansat (APIC) care acceptă 24 de canale Interrupt ReQuest. Controlerul de întrerupere extins este realizat sub forma a două microcircuite, dintre care unul se află în procesorul propriu-zis, iar celălalt pe placa de bază. Acest controler de întrerupere a apărut pentru prima dată în sistemele bazate pe procesoare Pentium. Cu toate acestea, suportul pentru vechiul sistem de întrerupere a fost păstrat din motive de compatibilitate. Următorul pas în dezvoltarea principiilor de gestionare a întreruperilor este tehnologia Message Signaled Interrupts, suport pentru care a apărut în linia sistemului de operare Windows, începând cu Windows Vista.

Întreruperile IRQ hardware nu trebuie confundate cu întreruperile software BIOS, care vor fi discutate într-un articol separat. Întreruperile software BIOS sunt de obicei folosite pentru a organiza munca software-ului cu dispozitive I/O și sunt desemnate prin abrevierea INT. Multe dintre ele sunt similare în funcțiile lor cu IRQ-urile hardware, dar au numere diferite.

Lista numerelor Interrupt ReQuest din schema standard pentru magistrala ISA pe 16 biți:

  1. Temporizator de sistem
  2. Tastatură
  3. Controler de întrerupere suplimentar (pentru compatibilitate cu magistrala pe 8 biți)
  4. Porturile de comunicație 1 și 3
  5. Porturile Com 2 și 4
  6. Gratuit (pe o magistrală de 8 biți - controler pentru hard disk)
  7. Controler de dischetă (FDD)
  8. Port paralel LPT
  9. Ceas CMOS în timp real
  10. Combinat cu IRQ 2
  11. Gratuit
  12. Gratuit
  13. Port mouse PS/2
  14. Coprocesor (în prezent practic nu este utilizat)
  15. Primul controler IDE
  16. Al doilea controler IDE

Lista de numere IRQ suplimentare pe care le utilizează APIC Extended Interrupt Controller:

  1. Controler USB
  2. Subsistem audio integrat (AC’97 sau HDA)
  3. Controler USB
  4. Controler USB
  5. Placă de rețea încorporată
  6. Gratuit
  7. Gratuit
  8. Controler USB 2.0

Corespondența dintre numerele IRQ și întreruperile BIOS:

Tabel de corelație între hardware IRQ și software INT BIOS

Concluzie

Deci, în acest articol ați putut afla ce înseamnă abrevierea IRQ și ce sunt întreruperile hardware. Sunt un mecanism încorporat pentru distribuirea resurselor computerului și sunt concepute pentru a organiza accesul dispozitivului la procesorul central. Distribuția și configurarea corectă a IRQ vă permite să evitați conflictele între dispozitive și să asigurați funcționarea stabilă a sistemului.

Pentru gestionarea evenimentelor care apar asincron în ceea ce privește execuția programului, este cel mai potrivit mecanism de întrerupere.

Întrerupe poate fi considerat ca un eveniment special din sistem care necesită un răspuns imediat. De exemplu, sistemele bine concepute de înaltă fiabilitate utilizează o întrerupere a căderii de curent pentru a efectua proceduri de scriere a conținutului registrelor și RAM pe medii magnetice, astfel încât, atunci când alimentarea este restabilită, lucrul poate continua din același loc.

Pare clar că o mare varietate de întreruperi sunt posibile din mai multe motive. Prin urmare, o întrerupere nu este considerată doar ca atare, ci are asociat un număr, numit număr de tip de întrerupere sau pur și simplu număr de întrerupere. Fiecare număr de întrerupere este asociat cu unul sau altul. Sistemul este capabil să recunoască ce întrerupere a avut loc cu ce număr și începe procedura corespunzătoare acestui număr.

Programele pot provoca ele însele întreruperi cu un anumit număr. Pentru a face acest lucru, ei folosesc comanda INT. Acestea sunt așa-numitele întreruperi software. Întreruperile software nu sunt asincrone, deoarece sunt apelate din program (și știe când apelează o întrerupere!).

Întreruperile software sunt convenabile de utilizat pentru a organiza accesul la module individuale comune tuturor programelor. De exemplu, modulele de program ale sistemului de operare sunt accesibile programelor de aplicație prin întreruperi și nu este nevoie să cunoască adresa lor curentă în memorie atunci când apelați aceste module. Programele de aplicație își pot instala propriile gestionare de întreruperi pentru a fi utilizate ulterioară de către alte programe. Pentru a face acest lucru, gestionatorii de întreruperi încorporați trebuie să fie rezidenți în memorie.

Întreruperile hardware sunt cauzate de dispozitive fizice și ajung în mod asincron. Aceste întreruperi informează sistemul despre evenimente legate de funcționarea dispozitivelor, de exemplu, că imprimanta a terminat în sfârșit de imprimat un caracter și ar fi bine să emită următorul caracter sau că sectorul de disc necesar a fost deja citit și conținutul acestuia. sunt disponibile programului. Utilizarea întreruperilor atunci când lucrați cu dispozitive externe lente vă permite să combinați I/O cu procesarea datelor în procesorul central și, ca rezultat, îmbunătățește performanța generală a sistemului. Unele întreruperi (primele cinci în ordine numerică) sunt rezervate pentru utilizare de către CPU însuși în cazul oricăror evenimente speciale, cum ar fi o încercare de împărțire la zero, depășire etc.

Uneori este de dorit ca sistemul să fie insensibil la toate sau la întreruperile individuale. Pentru aceasta folosesc așa-numitele întrerupe mascarea. Dar unele întreruperi nu pot fi mascate; acestea sunt întreruperi care nu pot fi mascate.

De asemenea, rețineți că gestionatorii de întreruperi pot apela ei înșiși întreruperi software, de exemplu, pentru a obține acces la serviciul BIOS sau DOS (serviciul BIOS este disponibil și prin mecanismul de întrerupere software).

Crearea propriilor programe de gestionare a întreruperilor și înlocuirea handlerelor standard DOS și BIOS este o muncă responsabilă și complexă. Este necesar să se țină cont de toate subtilitățile funcționării echipamentului și de interacțiunea dintre software și hardware. La depanare, este posibil să distrugi sistemul de operare cu consecințe imprevizibile, așa că trebuie să monitorizezi cu mare atenție ceea ce face programul tău.

Pentru a asocia adresa operatorului de întrerupere cu numărul de întrerupere, utilizați tabel de vectori de întrerupere, ocupând primul kilobyte de RAM - adrese de la 0000:0000 la 0000:03FF. Tabelul este format din 256 de elemente - adrese FAR ale manipulatorilor de întreruperi. Aceste elemente sunt numite vectori de întrerupere. Primul cuvânt al elementului de tabel conține offset-ul, iar al doilea cuvânt conține adresa segmentului de gestionare a întreruperilor.

Întreruperea numărul 0 corespunde adresei 0000:0000, întreruperea numărul 1 corespunde adresei 0000:0004 etc.

Tabelul este inițializat parțial de BIOS după testarea hardware-ului și înainte ca sistemul de operare să înceapă să se încarce și parțial la încărcarea DOS. DOS poate prelua unele întreruperi ale BIOS-ului.

Să ne uităm la conținutul tabelului vector de întrerupere. Iată scopul unora dintre cei mai importanți vectori:

Descriere

Eroare de divizare. Apelat automat după executarea unei comenzi DIV sau IDIV dacă diviziunea are ca rezultat o depășire (de exemplu, împărțirea cu 0). DOS tipărește de obicei un mesaj de eroare atunci când gestionează această întrerupere și oprește executarea programului. Pentru procesorul 8086, adresa de retur indică către următoarea instrucțiune după instrucțiunea de divizare, iar în procesorul 80286 - către primul octet al instrucțiunii care a provocat întreruperea.

Întrerupeți modul pas. Produs după execuția fiecărei instrucțiuni de mașină, dacă bitul de urmărire pas cu pas TF este setat în cuvântul flag. Folosit pentru programe de depanare. Această întrerupere nu este generată după executarea unei instrucțiuni MOV în registrele de segment sau după încărcarea registrelor de segment cu o instrucțiune POP.

Întreruperea hardware nemascabilă. Această întrerupere poate fi utilizată diferit pe diferite mașini. De obicei, este generată atunci când există o eroare de paritate în RAM și când este solicitată o întrerupere de la coprocesor.

Întreruperea pentru urmărire. Această întrerupere este generată de execuția unei instrucțiuni de mașină de un octet cu codul CCh și este folosită în mod obișnuit de depanatori pentru a seta un punct de întrerupere.

Revărsare. Generat de instrucțiunea mașină INTO dacă steag-ul OF este setat. Dacă flag-ul nu este setat, atunci instrucțiunea INTO este executată ca NOP. Această întrerupere este folosită pentru a gestiona erorile la efectuarea operațiilor aritmetice.

Imprimați o copie a ecranului. Generat prin apăsarea tastei PrtScr de pe tastatură. Utilizat de obicei pentru a imprima o imagine pe ecran. Pentru procesorul 80286, generat la executarea instrucțiunii de mașină BOUND dacă valoarea testată este în afara intervalului specificat.

Opcode nedefinit sau lungime a instrucțiunii mai mare de 10 octeți (pentru procesorul 80286).

Un caz special al absenței unui coprocesor matematic (procesor 80286).

IRQ0 - întreruperea temporizatorului de interval, are loc de 18,2 ori pe secundă.

IRQ1 - întrerupere de la tastatură. Generat atunci când o tastă este apăsată sau eliberată. Folosit pentru a citi date de la tastatură.

IRQ2 - utilizat pentru întreruperi hardware în cascadă în mașinile din clasa AT.

IRQ3 - întreruperea portului asincron COM2.

IRQ4 - întreruperea portului asincron COM1.

IRQ5 - întrerupere de la controlerul de hard disk pentru XT.

IRQ6 - întreruperea este generată de controlerul dischetei după finalizarea operației.

IRQ7 - întrerupere a imprimantei. Generat de imprimantă atunci când este gata să efectueze o altă operație. Multe adaptoare de imprimantă nu folosesc această întrerupere.

Întreținere adaptor video.

Determinarea configurației dispozitivelor din sistem.

Determinarea dimensiunii RAM din sistem.

Întreținerea sistemului de discuri.

I/O serial.

Serviciu avansat pentru calculatoare AT.

Întreținerea tastaturii.

Întreținere imprimante.

Rulați BASIC în ROM, dacă este disponibil.

Serviciu de ceasuri.

Managerul de întreruperi Ctrl-Break.

Întreruperea are loc de 18,2 ori pe secundă și este apelată programatic de către gestionarea întreruperii temporizatorului.

Adresa tabelului video pentru controlerul adaptorului video 6845.

Indicator către tabelul cu parametrii dischetei.

Indicator către un tabel grafic pentru caractere cu coduri ASCII 128-255.

Folosit de DOS sau rezervat pentru DOS.

Întreruperi rezervate utilizatorului.

Nefolosit.

IRQ8 - întrerupere a ceasului în timp real.

IRQ9 - întrerupere de la controlerul EGA.

IRQ10 - rezervat.

IRQ11 - rezervat.

IRQ12 - rezervat.

IRQ13 - întrerupere de la coprocesorul matematic.

IRQ14 - întrerupere de la controlerul de hard disk.

IRQ15 - rezervat.

Nefolosit.

Rezervat pentru BASIC.

Folosit de interpretul BASIC.

Ți s-a întâmplat vreodată: porniți scanerul sau conectați o unitate CD externă, iar în acel moment întregul sistem începe să încetinească vizibil și să se comporte inadecvat: mouse-ul se mișcă sacadat pe ecran, sunetul începe să se bâlbâie sau să se întoarcă off... Sunt și cazuri mai grave. De exemplu, după instalarea unei plăci de sunet noi, orice încercare de a scoate sunet, chiar și atunci când porniți Windows, computerul îngheață până la moarte. Dacă s-a întâmplat, atunci acest articol este despre cazul tău. Dacă nu, atunci citește oricum acest articol - dacă se întâmplă acest lucru, vei ști ce să faci.

Aceste probleme sunt cel mai adesea cauzate de un conflict de întrerupere hardware pe computer. Este amuzant, dar o parte destul de serioasă a problemelor cu un computer după instalarea hardware-ului nou este legată tocmai de aceleași conflicte, dar nimeni nu vorbește despre ele și, în general, acest subiect este puțin discutat. Înțelegerea întregii probleme în ansamblu este un subiect destul de larg, iar fiecare caz de conflict diferă adesea de cel anterior, atât ca simptome, cât și ca metode de rezolvare. În acest articol vom încerca să explicăm situația actuală pentru utilizatorii cărora nu le mai este frică de computere, dar nu au dobândit încă suficientă experiență pentru a rezolva singuri problemele legate de conflictele hardware. Din păcate, unele aspecte ale articolului pot fi destul de greu de perceput din cauza descrierilor sistemelor construite pe logica fuzzy, care, de altfel, este punctul forte al oamenilor în raport cu computerele.

Puțină istorie

Pentru mulți, această parte a articolului va părea inutilă, deoarece povestea va fi despre vremuri vechi, undeva din 1985, dar această informație este importantă pentru cei care doresc să înțeleagă esența problemei și să înțeleagă de ce totul s-a dovedit atât de ambiguu.

Cu mult timp în urmă, în îndepărtata America, a fost dezvoltat procesorul x86, care este precursorul tuturor procesoarelor utilizate în calculatoarele personale ale standardului IBM PC. Adică toate Pentium și Athlon se bazează pe vechiul procesor x86. Arhitectura procesoarelor moderne este deja foarte diferită de primul x86, totuși, unele aspecte s-au păstrat din acele vremuri străvechi când procesorul x86 era la începutul călătoriei sale, și anume de la mijlocul anilor optzeci ai secolului trecut. Unul dintre aceste puncte este limitarea numărului de linii de întrerupere hardware pentru procesorul central.

O întrerupere hardware este răspunsul unui procesor la evenimente care apar asincron în raport cu codul programului care se execută. Adică o întrerupere este momentul în care procesorul central, la cererea dispozitivului care a provocat întreruperea, amână sarcina în curs de îndeplinire și trece la sarcina necesară funcționării dispozitivului. După ce sarcina pentru dispozitiv este finalizată, procesorul revine la executarea programului principal. Întreruperea forțează placa de sunet să redea următoarea microsecundă de sunet, iar întreruperea forțează placa video să ia următorul cadru. Cu ajutorul întreruperilor, procesorul central pune în viață întregul computer. O linie de întrerupere hardware este, exagerat vorbind, un fir fizic care conectează cipul controlerului de întrerupere și dispozitivul. Numărul de linii de întrerupere hardware ale procesorului central este limitat la 16, adică dispozitivele care utilizează linii de întrerupere hardware nu pot depăși 16. Pentru a organiza liniile de întrerupere hardware în interiorul computerului, se folosește un cip specializat - un controler de întrerupere (PIC, Programable Interrupt). Controlor). Acest cip este compatibil în sistemul de instrucțiuni software cu cip 8259A, care avea doar 8 intrări și a fost folosit în calculatoarele din clasa IBM PC XT (procesor 8086). Odată cu lansarea IBM PC AT (procesor 80286), structura internă a organizației de întrerupere s-a schimbat. Au existat de două ori mai multe întreruperi din cauza utilizării unui alt cip 8259A, care a fost conectat la a doua linie a primului cip. Această arhitectură a controlerului standard de întrerupere a fost păstrată până în prezent și nu sunt planificate modificări pentru viitorul apropiat. Chiar și odată cu venirea pe piață a procesoarelor compatibile x86 pe 64 de biți, situația nu se va schimba. Liniile de întrerupere hardware sunt desemnate ca IRQ (Interupt ReQuest). După cum sa menționat deja, computerul are fizic 16 linii de întrerupere hardware, dar această cifră este mult redusă de întreruperi? utilizat deja de dispozitivele încorporate. Unele întreruperi au statutul celor de sistem, deci este imposibil să le folosești și să le reatribuiești numerele la discreția utilizatorului. În tabel sunt evidențiate cu litera S înaintea numărului. În mod implicit, următoarele întreruperi sunt ocupate:

Sistematicitate

Dispozitiv

Temporizator de sistem

Tastatură

Ceas în timp real

Gratuit

Gratuit

Gratuit

Gratuit

Coprocesor

Port Com 1 (Mouse)

Port Com 2 (Modem)

Gratuit

Dischetă (unitate de disc)

LPT (imprimantă)

Acest aspect de întrerupere a persistat foarte mult timp pe multe computere de uz casnic. Aproape toate computerele bazate pe procesoare 386, 486 și Pentium au o astfel de listă de întreruperi folosite. În această situație, există doar cinci întreruperi gratuite în computer (5, 9, 10, 11, 12), dar acest număr a fost suficient pentru majoritatea cazurilor. Rareori existau mai mult de trei dispozitive care necesitau întrerupere și erau instalate în computer sub formă de carduri de expansiune. Setul standard de atunci arăta astfel: o placă video, o placă de sunet și o placă de rețea. În același timp, era important ca o întrerupere să nu fie utilizată niciodată de două dispozitive în același timp, deoarece acest lucru ar duce la un conflict de resurse de sistem și ambele dispozitive de pe aceeași întrerupere nu ar funcționa. Sarcina constructorului de calculatoare din acel moment era să direcționeze toate dispozitivele în funcție de întreruperi, astfel încât niciun dispozitiv să nu se intersecteze cu altul.

Probabil că este timpul să explicăm ce este un conflict de întrerupere. Dacă două dispozitive se află pe aceeași linie de întrerupere, atunci driverul le poate încurca și trimite piesa executabilă a programului către piesa hardware greșită, forțând-o să execute această bucată de cod. De exemplu, placa de rețea și placa de sunet sunt pe întrerupere 10. Placa de rețea primește un pachet de la rețeaua locală cu o solicitare de a primi un fișier și trimite o cerere de întrerupere procesorului central.

Procesorul procesează întreruperea, oprește executarea sarcinii și transferă controlul către driverul plăcii de rețea pentru a efectua acțiunile necesare pentru a primi fișierul. Șoferul începe să lucreze cu dispozitivul de la care a venit întreruperea. Dar începe să funcționeze nu cu placa de rețea, ci cu placa de sunet situată pe aceeași linie, trecându-i comenzi pentru a primi fișierul. Placa de sunet execută comenzile primite și îngheață complet computerul cu BSOD (Blue Screen Of Death).

Mai este o mică subtilitate. Toate liniile de întrerupere au propria lor prioritate. Cu cât prioritatea liniei de întrerupere este mai mare, cu atât procesorul va răspunde mai rapid la o solicitare de la un dispozitiv situat pe această linie. Prioritățile de întrerupere sunt enumerate în tabelul de mai jos, în ordine descrescătoare.

Prioritate întrerupere

Arhitectura istorică a lăsat o amprentă foarte puternică asupra priorităților liniilor de întrerupere. Al doilea cip de controler conectat la a doua linie a primului cip se încadrează în priorități. Prin urmare, liniile celui de-al doilea cip au o prioritate mai mare decât liniile primului. În același timp, ambele microcircuite văd utilizatorului ca un singur modul de control de întrerupere - PIC (Program Interrupt Controller). Mai mult, două microcircuite nu au fost folosite de mult timp în aceste scopuri; toate acestea sunt încorporate în podul de nord al chipset-ului, dar structura priorităților de întrerupere a fost păstrată. Cu cât un dispozitiv necesită mai multe resurse de la un computer, cu atât ar trebui să aibă prioritate mai mare linia IRQ alocată acestui dispozitiv. Adică este indicat ca placa video să emită a noua sau a zecea întrerupere dacă este liberă. Pentru o placă de sunet, este de asemenea recomandabil să găsiți o întrerupere situată pe al doilea controler. Vom vorbi mai multe despre această problemă mai jos.

Dar timpul nu stă pe loc, iar situația de întrerupere a început să se agraveze odată cu dezvoltarea noilor tehnologii și dezvoltarea întregului domeniu informatic. Au apărut noi standarde de porturi I/O care necesită propria întrerupere. De exemplu, porturile USB sau PS/2, care sunt în prezent standardul de facto pentru toate computerele. Au fost din ce în ce mai puține întreruperi gratuite, iar rezolvarea conflictelor de sistem a devenit din ce în ce mai dificilă.

Prezentul …

Întreaga situație s-a schimbat foarte mult odată cu apariția sistemelor ACPI și IRQ Sharing. Din păcate, aceste sisteme nu pot fi descrise într-o singură propoziție, așa că le vom analiza mai detaliat.

Sistemul ACPI (Advanced Configuration and Power Interface) a fost dezvoltat în 1997 de trei companii: Microsoft, Intel și Toshiba. Dacă computerul dvs. acceptă ACPI în hardware-ul său, atunci când instalați sistemele de operare WindowsXP și Windows 2000, suportul ACPI este încorporat automat în nucleul sistemului de operare. Sistemul ACPI gestionează funcțiile de economisire a energiei ale computerului, cum ar fi oprirea automată a sursei de alimentare după finalizarea cu succes a sistemului de operare, economisirea energiei bateriei, punerea computerului în modul de repaus și trezirea acestuia din repaus. Dacă computerul tău nu este un laptop, atunci singura funcție utilă de la ACPI în ceea ce privește gestionarea energiei este oprirea automată a sursei de alimentare.

A doua funcție a ACPI este distribuirea automată a resurselor sistemului în interiorul computerului. În timp ce ACPI este în vigoare, nu puteți modifica niciun parametru legat de întrerupere. Mai mult, sistemul ACPI acceptă APIC Advanced Interrupt Controller.

APIC (Advanced Programable Interrupt Controller) este un controler programabil avansat de întrerupere. Pentru sistemele multiprocesor, acesta este un sistem necesar, deoarece vă permite să distribuiți sarcina de lucru cu dispozitive între procesoare. Adică, acest controler poate fi programat să proceseze unele linii de întrerupere de către primul procesor, iar unele de către al doilea. Pentru sistemele cu un singur procesor, această opțiune permite pur și simplu utilizarea întreruperilor virtuale în sistemele de operare WindowsXP și Windows2000. Nu vom prezenta algoritmi pentru operarea întreruperilor virtuale. Acestea sunt lipsite de sens, nu pot fi modificate și depind foarte mult de cele reale. Dacă aveți un sistem cu un singur procesor, atunci dezactivarea acestei funcții este foarte recomandată, dar mai multe despre asta mai târziu.

Partajarea IRQ - un sistem? permițând ca două dispozitive să fie pe aceeași întrerupere în același timp. Din punct de vedere fizic, se dovedește că mai multe dispozitive se pot suspenda pe aceeași linie IRQ, în timp ce gestionarea între ele este asigurată de sistemul de operare. Partajarea IRQ este un sistem ambiguu, deoarece utilizarea lui este necesară pentru funcționarea normală a computerului, dar este posibilă o mare varietate de probleme și erori. De fapt, folosirea și îmblânzirea acestui sistem este scopul acestui articol.

Combinația dintre sistemele de mai sus a fost recunoscută ca standard și inclusă în lista de cerințe pentru echipamente informatice - PC2001. După implementarea ACPI și IRQ Sharing pe toate plăcile de bază, începând cu plăcile de bază pentru Pentium 1 (chipset-uri VX și TX de la Intel), a apărut un aspect de întrerupere care există în fiecare computer până în prezent. Iat-o:

Sistematicitate

Dispozitiv

Temporizator de sistem

Tastatură

Cascad (Ieșire către al doilea cip de control al liniei de întrerupere)

Ceas în timp real

Gratuit

Coprocesor

IDE primar (controler hard disk)

IDE secundar (controler hard disk)

Port Com 1 (Mouse)

Port Com 2 (Modem)

Gratuit

Dischetă (unitate de disc)

LPT (imprimantă)

După cum se poate observa din tabel, practic nu au rămas întreruperi libere. Doar IRQ-urile 5 și 10 pot fi considerate gratuite, totul este ocupat. În mod logic, acestea sunt cele care ar trebui folosite pentru placa video și placa audio. Dar pot exista mult mai multe dispozitive care necesită propria întrerupere și nu sunt descrise în acest tabel. Ele nu sunt incluse în tabel, deoarece sunt opțiuni, adică pot fi sau nu în sistem. De exemplu: placă de rețea, controler RAID sau SCSI, tuner TV, SATA, IEEE1394 (FireWire) și așa mai departe. Adică, poate apărea o situație în care pentru două întreruperi libere vor exista opt dispozitive care necesită propria întrerupere. Există trei moduri de a rezolva această problemă. Fiecare metodă are avantajele și dezavantajele sale.

Prima cale– aceasta este utilizarea deplină a sistemelor ACPI și IRQ Sharing. Dacă sistemele ACPI și, în consecință, APIC, sunt activate, atunci sistemul de operare consideră că are 256 de întreruperi, în timp ce au existat 16 întreruperi reale și rămân. Restul de 240 de întreruperi sunt întreruperi virtuale, care sunt clone ale celor reale. ACPI distribuie automat întreruperile și nu permite utilizatorului să le schimbe. Dacă un dispozitiv acceptă să funcționeze în modul de cooperare cu un alt dispozitiv, atunci există toate șansele ca ACPI să-l pună pe aceeași linie fizică. Dacă nu controlați această situație, atunci aproape toate dispozitivele instalate în computer pot ajunge la o întrerupere fizică, chiar dacă există întreruperi gratuite. Acest lucru va duce la inhibarea severă a întregului sistem și la defecțiuni grave.

Soluţie:
Avantajul acestei abordări este că nu este nevoie de intervenția utilizatorului. Adică nu trebuie să faci nimic. Doar conectați un adaptor video, procesor, memorie etc. la placa de bază și apoi instalați un sistem de operare care acceptă în mod normal ACPI. Și acesta este Windows XP sau Windows 2000. Asta este. Computerul va începe să funcționeze. Aproape toate computerele asamblate în Rusia sunt vândute în această formă. Abordarea este simplă: dacă funcționează și încetinește, atunci acesta nu este un caz de garanție, ci o problemă de utilizator.

A doua cale constă în refuzul utilizării ACPI și APIC, dar cu utilizarea paralelă a IRQ Sharing. Refuzul sistemelor ACPI și APIC înseamnă că sistemul de operare știe că are doar 16 întreruperi, nu 256, dar sistemul IRQ Sharing permite ca mai multe dispozitive să fie pe aceeași întrerupere. În același timp, puteți monitoriza deja modelul de întrerupere și puteți alege și vecinii la discreția dvs. Adică, dacă aveți o placă de rețea și o placă de sunet și, în același timp, aveți nevoie de toate porturile I/O instalate pe placa de bază, atunci nu există nicio modalitate de a scăpa de IRQ Sharing.

Soluţie:
Plăcile de bază moderne au câteva caracteristici pe care trebuie să le cunoașteți pentru a direcționa corect liniile de întrerupere către dispozitive. Astfel, toate dispozitivele încorporate în placa de bază sunt cel mai adesea legate rigid de sloturile de expansiune PCI, iar unele sloturi sunt legate rigid unele de altele. De exemplu, aveți o placă de sunet încorporată în placa de bază și cooperează automat cu dispozitivul din al treilea slot PCI. Dacă introduceți o placă de rețea în al treilea slot, placa de sunet încorporată și placa de rețea se vor bloca pe aceeași întrerupere, indiferent ce faceți. Puteți rezolva acest conflict mutând placa de rețea într-un alt slot. Sau un alt exemplu: al cincilea și primul slot PCI sunt legați unul de celălalt, iar prin instalarea a două dispozitive în aceste sloturi, le conectați automat la aceeași linie de întrerupere. Din nou, acest lucru poate fi vindecat prin reinstalarea unuia dintre dispozitive într-un alt slot. Din păcate, plăcile de bază moderne au atât de multe dispozitive încorporate încât poate fi imposibil să găsești un slot PCI liber fără dispozitive în paralel. În acest caz, totul depinde de dispozitiv.

Toate dispozitivele locale situate pe computer pot fi împărțite în patru grupuri în funcție de gradul de dependență de întreruperi.

LA primul grup Aceasta include placa video și controlerele hard diskului. Aceste dispozitive trebuie să aibă o întrerupere dedicată și nu trebuie să o partajeze cu nimic altceva. Adică nu ar trebui să existe un singur dispozitiv pe aceeași întrerupere ca și placa video, altfel sunt garantate erori și încetiniri teribile. Co. al doilea grup Acestea includ dispozitive care necesită mai puține resurse, cum ar fi o placă audio, un tuner TV, un modem intern software (WinModem) sau o placă de rețea. Aceste dispozitive pot coexista pe aceeași întrerupere cu dispozitive din grupurile pe care le vom descrie mai jos. Cu toate acestea, dacă este posibil, este, de asemenea, recomandabil să plasați dispozitivele aparținând celui de-al doilea grup pe o întrerupere separată, deoarece sunt posibile diferite defecțiuni sub sarcină mare. Al doilea grup este această zonă de risc, deoarece nu este absolut clar ce dispozitiv poate intra în conflict cu care atunci când se utilizează întreruperi deja implicate. Stabilitatea în acest caz este obținută prin încercare și eroare. Singurul lucru care poate fi spus fără echivoc este că nu ar trebui să plasați două dispozitive din al doilea grup pe o singură întrerupere, acest lucru va duce la defecțiuni. A treia grupă- acestea sunt toate porturi de intrare/ieșire, porturi USB, COM, eventual LPT, IEEE1394 (FireWire), modemuri interne hardware și alte dispozitive care nu încarcă greu computerul. Dispozitivele din al treilea grup se pot conecta la dispozitivele din al doilea și la ele însele. Adică, toate porturile USB se pot suspenda la o întrerupere sau un port USB se poate agăța împreună cu un card audio sau un tuner TV. De asemenea, puteți agăța un controler FireWire împreună cu un port USB sau COM. bine si a patra grupă- Acestea sunt dispozitive care nu necesită întreruperi. Acesta este un grup destul de rar, și totuși există. De exemplu, acest grup includea acceleratoare grafice 3D de la 3dfx - Voodoo și Voodoo 2. Apropo, dacă dintr-o dată vezi că placa ta video sau porturile USB nu au nicio întrerupere (litere NA - adică Not Available), asta nu înseamnă că ai o placă video atât de rară și bună. Acest lucru înseamnă cel mai probabil că computerul dvs. are probleme care trebuie rezolvate imediat. Pentru dispozitivele care nu necesită întrerupere, acest lucru este scris cu majuscule în instrucțiuni.

Trebuie să înțelegeți că toate dispozitivele de mai sus pot avea proprietăți unice în funcție de producător sau firmware. Toate regulile descrise mai sus nu funcționează întotdeauna și nu sunt clare. Puteți ajunge cu ușurință la un tuner TV sau o placă de rețea care refuză complet să lucreze cu oricine în perechi. Sau invers, placa dvs. de sunet se poate comporta brusc stabil la aceeași întrerupere împreună cu tunerul TV. Chiar și dispozitivele aparținând celui de-al patrulea grup pot intra în conflict. Cel mai adesea, încep să eșueze dacă le pui într-un slot paralel cu AGP. În același timp, poate dura mult timp pentru a înțelege toate caracteristicile hardware-ului dvs.

Poate că a doua metodă este cea mai des folosită. Cu o anumită înțelegere a problemei, puteți crea un computer aproape fără erori în care vor funcționa toate dispozitivele instalate în el. Dezavantajul celei de-a doua metode este pierderea funcțiilor ACPI și cea mai mare complexitate dintre toate metodele. Pentru utilizatorul obișnuit, obținerea unor rezultate normale poate dura mult timp și poate provoca supraîncărcare severă a creierului. În plus, computerul nu se va mai opri de la sine (va trebui să-l închideți cu butonul „Power”) și nu va adormi. În ceea ce privește modul Hybernate, acesta își va păstra pe deplin funcționalitatea.

A treia cale- cel mai corect, dar necesită sacrificiu.

Esența metodei este abandonarea completă a sistemelor ACPI și IRQ Sharing. Iar dispozitivele care interferează cu o linie IRQ ar trebui pur și simplu oprite. Trebuie să fie doar unul!, așa cum a spus tovarășul din filmul „Highlander”.

Soluţie:
Mai întâi trebuie să dezactivați toate porturile care nu sunt utilizate. Dacă nu utilizați LPT, opriți-l. Dacă nu utilizați al doilea port COM și canale USB suplimentare - aceeași soartă, dezactivați-l. Fiecare dispozitiv trebuie să aibă o întrerupere separată și să nu se suprapună cu nimeni. Aceasta este o chestiune de priorități și nevoi, deoarece atunci când utilizați această metodă, jumătate din computer se oprește, dar totul funcționează ca un ceas. Avantajul acestei metode este capacitatea de a utiliza sisteme de operare învechite și programe complexe. De exemplu, pentru a instala WindowsNT 4.0 pe o mașină destul de complexă, această metodă este pur și simplu necesară. Un alt avantaj al acestei abordări este viteza maximă a întregului sistem fără probleme de stabilitate. Dacă este posibil, este indicat să mergeți pe acest traseu.

Cum să înțelegeți dacă există conflicte în computerul dvs. și ce să faceți

Cel mai simplu mod de a rezolva conflictele este să apăsați butonul PAUSEBREAK atunci când computerul pornește, sau mai degrabă, pe al doilea ecran BIOS. Pentru a face acest lucru, trebuie să aveți o reacție, deoarece al doilea ecran de încărcare trece foarte repede și tot trebuie să îl prindeți. De asemenea, puteți opri încărcarea sistemului de operare setând prioritatea BIOS pentru a porni de pe o unitate de dischetă și inserând o dischetă ciudată în ea. Al doilea ecran BIOS conține toate informațiile de sistem despre hardware - viteza de ceas a procesorului, cantitatea de memorie și modelele de hard disk-uri instalate, dar cel mai interesant lucru este în partea de jos a ecranului. Dispozitivele instalate sunt listate acolo, iar vizavi de ele este un număr de întrerupere. Dispozitivele prezentate în această etapă depind foarte mult de modelul plăcii de bază, sau mai precis de implementarea BIOS-ului.

Se întâmplă ca lista de dispozitive afișate să fie completă și să includă controlere de hard disk și toate dispozitivele situate pe placă, până la porturile COM. Se întâmplă și invers: există destul de multe informații, apoi sunt vizibile doar dispozitivele instalate (ca în captură de ecran). Și se întâmplă ca al doilea ecran BIOS să nu conțină deloc informații despre întreruperi. În acest caz, merită să utilizați alte programe care pot afișa distribuția fizică a întreruperilor.

De exemplu, puteți utiliza un manager de dispozitiv standard, schimbându-i vizualizarea la „resurse de conexiune” și extinzând secțiunea „cerere de întrerupere (IRQ)” sau utilizați programe terțe, cum ar fi SiSoft Sandra.

Singurul dezavantaj al utilizării lor este că văd numere de întrerupere prin prisma sistemului de operare. Dacă se utilizează sistemul ACPI și APIC, atunci obținerea de informații corecte despre întreruperile hardware va fi foarte dificilă, deoarece numerele nu vor fi 16, ci 256. Ne interesează situația în care numerele nu se repetă. Dacă același număr este vizavi de USB Cntrlr, Display Cntrlr și Multimedia Device (placă audio sau tuner TV), atunci situația este foarte rea. De exemplu, această fereastră spune următoarele:

Computerul folosește sistemul ACPI, APIC și IRQ Sharing, deoarece există mai mult de 15 întreruperi și se suprapun. Există un conflict între placa de rețea și placa de sunet, care se află la întreruperea 18. Există, de asemenea, un conflict complet nesemnificativ între toate ramurile USB la a 21-a întrerupere, dar aceasta este mai degrabă norma. În general, sistemul este stabil, dar pentru a asigura o stabilitate mai mare este necesar să dezactivați ACPI și să separați rețeaua și plăcile de sunet la diferite întreruperi.

Cum să decideți și ce să faceți

Trebuie să înțelegeți că acțiunile de rezolvare a conflictelor pot duce la o prăbușire completă a sistemului de operare și la pierderea datelor. Faceți copii de rezervă ale documentelor dvs., notați toate parolele și setările de rețea și abia apoi luați măsuri. Cel mai bine este să experimentați pe un sistem de operare proaspăt instalat și să aveți ocazia să-l reinstalați după ce toți pașii au fost finalizați dacă ceva nu merge bine. Desigur, autorul și editorii nu poartă nicio responsabilitate pentru rezultatele experimentelor dvs.

Pasul unu: aflați BIOS-ul

Mai întâi trebuie să te uiți la opțiunile din BIOS-ul computerului tău. Și nu atingeți nimic acolo, altfel șansele de a încărca sistemul de operare deja instalat sunt mult reduse. Indiferent de producătorul BIOS-ului și placa de bază, opțiunile necesare funcționării pot fi prezente sau nu. Nu există un standard pentru aceste opțiuni, așa că pot avea nume diferite și pot fi localizate în diferite secțiuni ale BIOS-ului. Dar, folosind metoda deductivă a lui Sherlock Holmes, ele pot fi încă găsite. Ca exemplu, vom da numele acestor opțiuni în BIOS-ul Award al plăcii de bază GigaByte. Cele mai importante opțiuni pentru noi se află în secțiunea Configurare PnPPCI și arată ca numerele de slot și numerele de întrerupere asociate acestora, care pot fi modificate.

Folosind aceste opțiuni, puteți obține distribuția corectă a priorității liniilor de întrerupere către dispozitive:
Atribuire IRQ PCI 1: Auto (Auto, 3,4,5,7,9,10,11,14,15)
Atribuire IRQ PCI 2: Auto (Auto, 3,4,5,7,9,10,11,14,15)
Atribuire IRQ PCI 3: Auto (Auto, 3,4,5,7,9,10,11,14,15)
Atribuire IRQ PCI 4: Auto (Auto, 3,4,5,7,9,10,11,14,15)

Adică, puteți modifica manual întreruperile pentru sloturile și dispozitivele atașate acestora. Dacă toate opțiunile sunt setate la Auto, atunci distribuția întreruperilor este gestionată de o mașină automată cu un algoritm foarte similar cu algoritmul sistemului ACPI. Uneori, întreruperile sunt indicate nu prin cifre, ci prin litere - A, B, C, D. La fel ca și în cazul numerelor, întreruperile cu litere permit controlarea, litera A având cea mai mare prioritate.

Dacă aceste opțiuni nu sunt disponibile, atunci prioritățile nu pot fi modificate și singura modalitate de a influența aspectul întreruperii este dezactivarea dispozitivelor și rearanjarea cardurilor de expansiune pe sloturi.

PnP OS instalat: Da (Nu)

Această opțiune îi spune BIOS-ului că sistemul de operare însuși se ocupă de distribuirea întreruperilor. Uneori, după schimbarea valorii la NU, abilitatea de a controla prioritățile sloturilor devine disponibilă.

Funcția ACPI: Activare (Dezactivare)

Desigur, această opțiune activează și dezactivează suportul ACPI în BIOS. Dacă dezactivați această opțiune înainte de a instala sistemul de operare, este posibil ca nucleul ACPI să nu fie instalat (depinde foarte mult de versiunea și tipul BIOS-ului).

Controler de întrerupere: APIC (PIC)

După cum s-a descris mai devreme, această funcție are semnificații diferite pe sistemele cu un singur procesor și multiprocesor. Pe sistemele cu un singur procesor, permite sistemului de operare să utilizeze întreruperi virtuale. Dacă opțiunea este schimbată în PIC când este instalat un sistem de operare cu un nucleu ACPI, sistemul de operare nu va mai porni până când această valoare este corectată înapoi la APIC. Dacă setați opțiunea în PIC înainte de a instala sistemul de operare, nucleul ACPI nu va folosi întreruperi virtuale și va asculta instrucțiunile BIOS-ului menținând în același timp funcțiile de economisire a energiei. Acesta este un lucru util, deoarece cu această opțiune prezentă și cu capacitatea de a reinstala sistemul de operare, este posibil să se păstreze funcțiile ACPI atunci când dezactivați partea problematică a ACPI cu rutare independentă de întrerupere. Minus - este extrem de rar pe sistemele cu un singur procesor.

Opțiunile pentru dezactivarea dispozitivelor sunt, de asemenea, utile:
Midi Port Address – puteți dezactiva portul Midi
Port paralel la bord – puteți dezactiva portul LPT
Audio onboard – puteți dezactiva placa de sunet încorporată
Onboard LAN Control – puteți dezactiva adaptorul de rețea încorporat
USB Host Controller – puteți dezactiva porturile USB
Serial ATA la bord – puteți dezactiva Serial ATA
RAID la bord – puteți dezactiva controlerul RAID.

Dacă dispozitivele de mai sus nu sunt utilizate, setarea lor la Dezactivat le va dezactiva și va elibera resursele pe care le folosesc.

Pasul doi - Harta întreruperi

Cautam documentatie de pe placa de baza. Dacă ai noroc, vei găsi o hartă de întreruperi pentru placa ta de bază, care arată astfel:

Literele din partea de sus indică liniile de întrerupere IRQ, coloana din stânga este o listă de dispozitive și sloturi instalate pe placa de bază. Indicația partajată înseamnă că dispozitivul poate funcționa în modul de cooperare cu alte dispozitive, folosit înseamnă că modul de cooperare este imposibil. Vă rugăm să rețineți: există până la 7 linii de întrerupere, iar mai devreme am spus că există doar cinci linii complet libere. Aceasta înseamnă că indicii de litere pot coopera și atunci când există o lipsă de resurse. După decodificarea informațiilor din acest tabel, aceasta este ceea ce obținem. Dacă aveți un accelerator grafic instalat într-un slot AGP, atunci instalarea dispozitivelor în al doilea și al șaselea slot PCI este strict interzisă, deoarece folosesc aceeași linie fizică IRQ. Instalarea simultană a cardurilor de expansiune în sloturile 1 și 5 este, de asemenea, interzisă. Aveți de ales: slotul 1 sau slotul 5, altfel ambele dispozitive se vor bloca pe aceeași întrerupere. Instalarea unui dispozitiv în al treilea slot va provoca un conflict de întrerupere cu portul 1394 și controlerul SerialATA. Dacă aceste porturi nu sunt utilizate, dezactivarea lor va elibera al treilea slot. În plus, dacă utilizați SerialATA, care aparține dispozitivelor din primul grup, atunci trebuie pur și simplu să dezactivați portul 1394 și să nu utilizați al treilea slot. Toate controlerele USB se blochează pe o singură întrerupere și nu poți face nimic în privința asta, dar nu este nevoie. Placa de rețea încorporată împarte al patrulea slot. Dacă este folosit, atunci nu ocupați nici al patrulea slot. Prin dezactivarea plăcii de rețea, puteți utiliza al patrulea slot după cum doriți. Concluzia este simplă: puteți instala fără durere o placă de expansiune în slotul 1 sau 5 și un accelerator video în slotul AGP. Dacă aveți nevoie de mai multe sloturi, atunci trebuie să dezactivați ceva.

Mai mult, încă nu există suficiente întreruperi pentru toate aceste dispozitive, așa că trebuie să eliberați liniile IRQ neutilizate. Există un singur lucru bun: nu există atât de multe tipuri de dispozitive instalate. Rareori aveți nevoie de două plăci de rețea sau două plăci de sunet într-un computer. Dacă se utilizează SerialATA, atunci cel mai adesea nu sunt necesare ambele canale ale controlerului UATA, care ocupă întreruperile 14 și 15. Unul dintre ei poate fi eliberat, având în vedere că al doilea ocupă un CD-ROM. Și așa mai departe.

Dacă ați observat, nu toți indicii de litere din tabel sunt legați de sloturile de expansiune PCI. De exemplu, linia F, pe care se blochează USB, nu este asociată cu sloturi, în timp ce numai numerele de întrerupere pentru sloturi sunt controlate din BIOS. Linia F este controlată de automatizarea internă a BIOS-ului. Și această automatizare va coopera cu această linie IRQ cu aproape orice. Pentru a rezolva conflictele cu acest thread? veți avea nevoie de o tobă de șaman, un picior de iepure și o potcoavă mare. De fapt, va trebui să modificați configurația layout-urilor de întrerupere pentru sloturi până când linia F ajunge la o valoare care vi se potrivește. Cu fiecare modificare, forțați automatizarea să recalculeze întreaga configurație și de fiecare dată automatizarea va atribui o nouă valoare pentru linia F. Dacă există mai multe astfel de linii necontrolate, sarcina devine mai complicată. În cazul nostru, linia G a rămas necontrolată, dar răbdarea și munca, după cum știm, vor macina totul.

Am descris cardul de întrerupere de pe placa de bază Asustek A7V8X; fiecare placă de bază are propriile carduri de întrerupere specifice. Dar principiile de bază ale calculării dependențelor pot fi înțelese din această descriere.

Dacă nu aveți o hartă de întreruperi în documentație, atunci aceasta pur și simplu complică sarcina. Va trebui să faci singur această hartă. Pentru oamenii cu experiență implicați în hardware, să-ți faci această hartă în cap fără a scrie nimic nu este foarte dificil. Pentru începători, pot fi necesare hârtie și stilou. Desenați un tabel similar cu cel de mai sus. Listați dispozitivele din stânga, liniile IRQ în partea de sus. Accesați BIOS-ul, setați o întrerupere diferită pentru fiecare slot, apoi instalați placa de expansiune în sloturile PCI în ordine și uitați-vă la numărul de întrerupere din al doilea ecran BIOS. Numărul IRQ al plăcii pe care o înlocuiți va varia în funcție de slot. Numerele de întrerupere pentru dispozitivele încorporate în placa de bază care sunt integrate cu sloturile PCI se vor modifica, de asemenea, și se vor schimba în conformitate cu numerele IRQ pe care le-ați setat pentru sloturile PCI din BIOS. Dacă dispozitivul are propria sa linie, cum ar fi linia F pentru USB, atunci va schimba valoarea într-un mod complet ilogic, de exemplu, sărind numărul IRQ de la un slot la altul.

Pasul trei - Modificări ale sistemului de operare

Prima modificare cu care vom începe configurarea sistemului va fi înlocuirea nucleului sistemului de operare pentru a dezactiva funcțiile ACPI. După cum am menționat mai devreme, după aceasta computerul va pierde toate funcțiile de economisire a energiei și nu se va mai opri după ce sistemul de operare se va închide. Pentru a face acest lucru, accesați panoul de control, selectați pictograma „Sistem”, apoi accesați fila „Hardware” și faceți clic pe „Manager dispozitive”. Apoi deschideți secțiunea „Computer” și faceți dublu clic pe „Computer with ACPI”. Selectați fila „Driver” și faceți clic pe butonul „Actualizare”.

Selectați „instalați dintr-o locație specificată”, apoi refuzați căutarea automată a driverului și alegeți să instalați driverul manual. În fereastra care apare, debifați „doar dispozitivele compatibile” și selectați driverul „Computer standard”.

După ce faceți clic pe butonul „Următorul”, computerul va copia fișierele necesare și va reporni. După repornire, computerul va începe să găsească TOATE dispozitivele din nou, inclusiv dispozitivele de sistem, dar va găsi drivere pentru acestea în mod automat. Unele dispozitive nu se instalează automat, dar pentru ele trebuie doar să selectați căutarea automată a driverelor. După aceasta, computerul va reporni din nou și apoi va funcționa normal. Gata, sistemul ACPI este dezactivat. Pentru a activa din nou ACPI, trebuie să repetați toți pașii descriși mai sus, selectați doar „Computer cu suport ACPI”.

Acum toate informațiile de sistem referitoare la liniile de întrerupere din sistemul de operare sunt corecte. Numerele de întrerupere corespund celor reale. Aceasta înseamnă că pentru a monitoriza întreruperile, acum puteți utiliza diverse utilitare care arată întreruperi într-un mediu Windows.

Așa arată aspectul de întrerupere după ce ACPI este dezactivat și partajarea IRQ este păstrată. Apropo, captura de ecran arată aspectul întreruperii cu principalele conflicte rezolvate. Doar matricea RAID intră în conflict cu SMBus, dar acest conflict nu poate fi rezolvat, deoarece controlerul RAID încorporat este conectat la placa de întrerupere SMBus. Prioritățile liniei de întrerupere corespund tipului de dispozitiv. În acest computer, conflictele sunt rezolvate folosind a doua metodă; nu sunt necesare modificări sau modificări.

Pasul patru - Modificări ale BIOS-ului

De fapt, acest pas este o generalizare a acțiunilor descrise mai sus, doar dacă au existat descrieri mai sus, acum trebuie să luați măsuri reale, așa că îmi cer scuze pentru unele repetări. În primul rând, schimbăm opțiunile din BIOS, dacă sunt prezente, desigur:
PnP OS instalat: NU
Funcția ACPI: Dezactivată
Controler de întrerupere: PIC

Apoi, dezactivăm porturile și dispozitivele inutile pe care nu le veți folosi în viitorul apropiat, eliberând astfel ramuri de întrerupere suplimentare. Din imaginea rezultată, folosind cardul de întrerupere, calculăm sloturile PCI libere. Dacă nu există, atunci căutăm sloturi PCI care împart întreruperea cu dispozitivele din al treilea grup (porturi de intrare/ieșire). Rearanjam cardurile de expansiune în aceste sloturi, urmând regulile descrise în a doua metodă (link). Apoi, intrăm din nou în BIOS și, folosind opțiunile de atribuire a unui număr IRQ unui anumit slot, setăm prioritățile dispozitivelor, aranjandu-le după cum urmează. Cu cât este mai mare grupul căruia îi aparține un dispozitiv, cu atât este mai mare prioritatea liniei de întrerupere pentru acesta. Adică pentru o placă video este 9, 10 sau 11, la fel pentru controlerul de hard disk (RAID, SATA, SCSI) și placa audio. Tunerul TV și placa de rețea pot fi setate să întrerupă 3, 4 sau 5. Iar pentru USB este potrivit 7. Desigur, vă cunoașteți mai bine computerul și nevoile. Poate că USB-ul va fi cel mai important pentru dvs. și apoi veți încerca să puneți USB pe întreruperea 10 sau 11. Trebuie să decizi toate acestea pentru tine. Apoi, trebuie să configurați dispozitivele care nu au control al numărului de linie de întrerupere din BIOS. Pentru a face acest lucru, trebuie să modificați întreruperile dispozitivelor în limitele priorităților de întrerupere pentru acestea, adică să conduceți placa video de la 9 la 11, precum și dispozitivele audio și alte dispozitive. Folosind metoda forței brute, veți conduce linia automată la valoarea necesară. Acest lucru va avea probabil un anumit impact asupra aspectului final de întrerupere. Adică ați vrut să setați videoclipul la 10, dar ați ajuns să îl setați la 11, doar pentru ca USB-ul să treacă la 7. Odată ce obțineți un rezultat care vi se potrivește, încărcați sistemul de operare și bucurați-vă de funcționarea coordonată a computerului dvs. . Nu uitați, pornirea acestuia în BIOS sau adăugarea fizică a unui alt dispozitiv va duce din nou întregul sistem de întrerupere în CHAOS, care va trebui să fie rezolvat din nou.

concluzii

Poate fi foarte dificil de explicat sisteme care nu sunt informații liniare, ci o împletire a diverselor informații combinate cu intuiție și logică, logica umană, nu logica computerizată. Din cauza lipsei de informații organizate și a tehnologiilor sofisticate, fiecare persoană care știe să rezolve conflictele în interiorul unui computer se consideră un pic un magician, pentru că fiecare o face puțin diferit. Toată lumea are mici trucuri și secrete. Pentru a face acest text cel puțin ușor de înțeles, am încercat să nu mă concentrez pe explicațiile tuturor acțiunilor și pe o descriere precisă a tuturor funcțiilor și specificațiilor. Cu toate acestea, dacă aveți întrebări sau comentarii, autorul articolului va fi bucuros să le asculte și să le răspundă. Sperăm că acest articol îi va ajuta pe informaticienii începători să înțeleagă situația actuală.

Managementul priorităților IRQ

Gestionarea cererilor de întrerupere hardware

Majoritatea componentelor atașate direct la placa de bază, inclusiv sloturi PCI, controlere IDE, porturi seriale, portul tastaturii, chiar și placa de bază CMOS, au IRQ-uri separate. O cerere de întrerupere hardware, sau IRQ, întrerupe funcționarea normală a procesorului, permițând dispozitivului să funcționeze. Windows 7 vă permite să prioritizați unul sau mai multe IRQ-uri (care sunt traduse la unul sau mai multe dispozitive), îmbunătățind potențial performanța acelor dispozitive.

Pași pentru modificarea priorității IRQ

  1. Începeți prin a rula utilitarul System Information Utility (msinfo32.exe) și accesați System Information Hardware Resources Interrupts (IRQ-uri) pentru a vedea ce IRQ-uri sunt utilizate pentru ce dispozitive.
  2. Apoi deschideți Registry Editor (vezi capitolul 3) și navigați la HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl.
  3. Creați o nouă valoare DWORD în această secțiune și denumiți parametrul IRQ#Priority, unde # este numărul dispozitivului IRQ pentru care doriți să setați prioritatea (de exemplu, IRQ13Priority corespunde IRQ 13, care este coprocesorul aritmetic).
  4. Faceți dublu clic pe noua valoare și introduceți un număr de prioritate. Introduceți 1 pentru cea mai mare prioritate, 2 pentru a doua etc. Asigurați-vă că nu introduceți același număr pentru două intrări și nu încercați să faceți totul deodată, ci experimentați cu una sau două valori.
  5. Când ați terminat, închideți Editorul de registry și reporniți computerul.