Za šta se koristi irq broj prekida? Sistem prekida učitavanje procesora

Sukob je situacija u kojoj nekoliko objekata istovremeno pokušava pristupiti resursu koji je namijenjen samo jednom od njih. Do sukoba prekida dolazi kada više uređaja koristi istu liniju prekida za slanje signala zahtjeva, a ne postoji mehanizam za rukovanje istovremenim zahtjevima. Ako upravljački program, koji prima kontrolu, ne radi s uređajem koji je poslao zahtjev, dolazi do kvara ili jednostavno jedan od uređaja ne radi.

Postavlja se pitanje: može li nekoliko uređaja koristiti istu liniju prekida, ili je to u načelu nemoguće? Uostalom, ako vozač može odrediti od koga je točno došao zahtjev, tada će reagirati na signale samo sa "svog" uređaja, zanemarujući sve ostale. Ali to se na neki način mora unaprijed dogovoriti, inače je sukob neizbježan.

Lokalna PCI sabirnica dizajnirana je sa dijeljenjem prekida na umu. Svaki PCI uređaj mora ispravno raditi na istoj liniji prekida s drugim PCI uređajima. To se radi na sljedeći način: činjenicu o prisutnosti signala na liniji prekida određuje ne ivica, tj. promjenom naponskog nivoa, već samom činjenicom prisutnosti određenog napona. Nekoliko uređaja može promijeniti napon u liniji odjednom, postajući takoreći u redu za servis.

Dakle, dijeljenje istog IRQ -a na nekoliko PCI uređaja nije konflikt po definiciji (Sl.). Međutim, ponekad nastanu problemi. Prvo, ne rade svi PCI uređaji ispravno na istoj liniji prekida s drugima. Drugo, ponekad vozači imaju greške zbog kojih ne mogu ispravno odrediti izvor signala, ometajući druge upravljačke programe. Treće, ne rade svi uređaji na PCI sabirnici; na primjer, ISA uređaji, koji uključuju, na primjer, kontrolere porta COM / LPT, ne mogu dijeliti prekide s drugima.

Pirinač. IRQ karta upravitelja uređaja Win2000 - IO PIC Intel 440BX skup čipova

Pirinač. Win2000 IRQ MAPA - IO APIC - Preko KT266a Čipseta

Zbog toga su moguće situacije kada se računalo počinje često smrzavati, odbija obavljati bilo koje funkcije ili čak jednostavno ispada u tzv. " plavi ekran smrti ".

Apic (Napredni programabilni kontroler prekida)

Kao što je gore prikazano, linija prekida je vrlo oskudan resurs za računar. Međutim, s razvojem računarske industrije, broj različitih vanjskih uređaja u računaru se stalno povećava. Na primjer, jedna matična ploča može imati 5-6 PCI utora, AGP utor, ugrađeni IDE kontroler, ugrađeni SCSI kontroler, ugrađeni 1/2-portni mrežni adapter itd. Svi ovi uređaji zahtijevaju prekide. Postepeno je nedostajalo 16 linija IRQ -a.

APIC Je kontroler prekida koji vam omogućuje da koristite 24 hardverska prekida umjesto 16. Ograničenje od 16 hardverskih prekida, nepromijenjeno od 1982., kočilo je instalaciju dodatnih uređaja na osobnom računaru. Krajem 2001. pojavile su se prve matične ploče sa APIC -ovima.

Pirinač. Sistem prekida u višeprocesorskom okruženju.

Prethodni opis je bio za PIC -ove dizajnirane za jednoprocesorske sisteme. Ako sistem uključuje dva ili više procesora, ovaj pristup više nije dopušten i potrebni su složeniji PIC -ovi.

Sve savremeni procesori x86 uključuju lokalni APIC. Svaki lokalni APIC ima 32-bitne registre, interni sat, lokalni mjerač vremena i dvije dodatne IRQ linije, LINT0 i LINT1, rezervirane za lokalne APIC prekide. Svi lokalni APIC -ovi povezani su na vanjski I / O APIC.

I / O APIC sadrži skup od 24 IRQ linije, tablicu usmjeravanja prekida sa 24 ulaza, programibilne registre i blok poruka za slanje i primanje poruka na APIC sabirnici. Za razliku od IRQ pinova 8259A, prioritet prekida nije vezan za broj pina.

Svaki unos u tablici usmjeravanja prekida može se zasebno programirati za prikaz vektora prekida i njegovog prioriteta, procesora koji će obraditi prekid i načina na koji će taj procesor biti izabran. Podaci u tablici usmjeravanja prekida koriste se za prevođenje svakog vanjskog signala u poruku upućenu jednom ili više lokalnih APIC -ova preko APIC sabirnice.

Statička distribucija

IRQ signal se isporučuje lokalnim APIC -ovima navedenim u odgovarajućem unosu IRQ tablice preusmjeravanja. Prekid se isporučuje jednom određenom CPU -u, više CPU -a ili svim CPU -ima.

Dinamička alokacija

IRQ signal se isporučuje lokalnom APIC -u procesora, koji izvršava proces s najnižim prioritetom.

Svaki lokalni APIC ima programirljivi registar prioriteta posla koji se koristi za izračunavanje prioriteta trenutnog procesa. Intel očekuje da će jezgro operativnog sistema ovaj registar izmijeniti na svakom prekidaču procesa.

Osim distribucije prekida po procesorima, multi-APIC sistem omogućava CPU-u da generira međuprocesorske prekide. Kada CPU želi poslati prekid drugom CPU -u, pohranjuje vektor prekida i ciljni lokalni APIC ID u Registar naredbi prekida (ICR) svog lokalnog APIC -a. Poruka se zatim šalje putem APIC sabirnice ciljnom lokalnom APIC -u, koji izdaje odgovarajući prekid svom CPU -u.

Mnogi uniprocesorski sistemi trenutno uključuju I / O APIC čip koji se može konfigurirati na dva načina:

1. Kao standard 8259A PIC povezan sa CPU -om. Lokalni APIC je onemogućen, a dvije linije LINT0 i LINT1 konfigurirane su kao INTR i NMI pinovi.

2. Kao standardni vanjski I / O APIC. Lokalni APIC je omogućen i svi vanjski prekidi se primaju putem I / O APIC -a.

  • Alieva Elena Viktorovna, student
  • Ufa Državni vazduhoplovni tehnički univerzitet
  • KONTROLA PREKIDA
  • KONTROLER
  • PREKIDI HARDVERA
  • PREKID

Prekid znači privremeni prekid glavnog procesa izračunavanja radi izvođenja nekih planiranih ili neplaniranih radnji uzrokovanih radom hardvera ili programa. Mehanizam prekida podržan je na hardverskom nivou. Hardverski prekidi nastaju kao reakcija mikroprocesora na fizički signal nekog uređaja (tastatura, sistemski sat, tastatura, HDD itd.), ti su prekidi asinhroni prema vremenu pojavljivanja, tj. javljaju u slučajnim vremenima. Kontroler prekida je dizajniran za obradu i arbitražu dolaznih servisnih zahtjeva centralna procesorska jedinica sa perifernih uređaja. Prekidi imaju određeni prioritet, što omogućava kontrolorima prekida da daju prednost ovaj trenutak vreme do jednog uređaja, ne do drugog. U modernom računaru postoji do 16 vanjskih i perifernih uređaja koji stvaraju prekide.

  • Automatizacija protoka dokumenata u skladištu proizvodnog preduzeća
  • Pozivi-tehnologije, značajke, primjena i efikasnost
  • Razvoj modela informacionog sistema pravne službe za podršku i zaključivanje ugovora preduzeća

Uvod

Prekid znači privremeni prekid glavnog procesa izračunavanja radi izvođenja nekih planiranih ili neplaniranih radnji uzrokovanih radom hardvera ili programa. One. to je proces koji privremeno prebacuje mikroprocesor na izvršavanje drugog programa, a zatim se vraća u prekinuti program. Pritiskom na taster na tastaturi pokrećemo trenutni poziv programu koji prepoznaje ključ, stavlja njegov kôd u bafer tastature, iz kojeg ga čita drugi program. One. mikroprocesor prekida izvršenje na neko vrijeme trenutni program te prelazi na rukovatelj prekidima, takozvani rukovatelj prekidima. Nakon što rukovatelj prekida završi svoj rad, prekinuti program će nastaviti s izvršavanjem od točke na kojoj je obustavljen. Adresa rukovatelja prekida izračunava se iz vektorske tablice prekida.

Mehanizam prekida podržan je na hardverskom nivou. Ovisno o izvoru, prekidi se dijele na:

  • hardver- nastaju kao reakcija mikroprocesora na fizički signal s nekog uređaja (tastatura, sistemski sat, tastatura, tvrdi disk itd.), ti su prekidi asinhroni u vremenu pojavljivanja, tj. javljaju se nasumično;
  • programski- pozivaju se umjetno koristeći odgovarajuću naredbu iz programa (int), namijenjeni su izvođenju nekih radnji operativnog sistema, sinhroni su;
  • izuzeci- su reakcija mikroprocesora na nestandardnu ​​situaciju koja je nastala unutar mikroprocesora tokom izvršavanja određene programske naredbe (podjela na nulu, prekid TF zastavicom (praćenje)).

Prekinite sistemski hardver

Sistem prekida je zbirka softvera i hardvera koji implementiraju mehanizam prekida.

Sistemski hardver prekida uključuje:

  • izlazi mikroprocesora - na njima se generiraju signali koji obavještavaju mikroprocesor ili da neki vanjski uređaj "traži pažnju" (INTR), ili da je potrebna hitna obrada nekog događaja ili katastrofalna greška (NMI)
  • INTR - pin za ulazni signal zahtjeva za prekidom,
  • NMI - pin za nemamaskirajući ulazni signal prekida
  • INTA - izlaz za izlazni signal potvrde prijema prekidnog signala od strane mikroprocesora (ovaj signal se dovodi na istoimeni ulaz mikro kola upravljačkog sklopa 8259A;
  • 8259A Programabilni kontroler prekida (dizajniran za fiksiranje signala prekida sa osam različitih vanjskih uređaja; napravljen je u obliku mikro kruga; obično se koriste dva serijski spojena mikro kruga, pa je broj mogućih izvora spoljni prekidi do 15 plus jedan nemamaskirajući prekid; on formira broj vektora prekida i izdaje njegovu sabirnicu podataka);
  • spoljni uređaji (tajmer, tastatura, magnetni diskovi itd.)

Rukovanje prekidima

Prekid pokreće niz događaja koji se dešavaju i na hardveru i na softvera... Na sl. 1 prikazuje tipičan slijed ovih događaja.

Kada se I / O uređaj dovrši, događa se sljedeće:

  • Uređaj šalje signal prekida procesoru.
  • Prije nego što odgovori na prekid, procesor mora dovršiti izvršavanje trenutne naredbe (vidi sliku 1).
  • Procesor provjerava prisutnost prekida, otkriva ga i šalje uređaju koji je poslao ovaj prekid, obavještavajući signal uspješnog prijema. Ovaj signal omogućava uređaju da obriše signal prekida.
Slika 1. Vrijeme programiranja: Sporo U / I

Sada se procesor mora pripremiti za prijenos kontrole na rukovatelj prekidima. Prvo morate sve sačuvati važna informacija, tako da se kasnije možete vratiti na mjesto trenutnog programa gdje je pauziran. Minimalno potrebne informacije su statusna riječ programa i adresa sljedeće izvršene naredbe koja se nalazi u programskom brojaču. Ovi podaci se guraju u sistemski kontrolni stek.

Slika 2. Rukovanje jednostavnim prekidom

Nadalje, adresa ulaza rukovaoca prekida, koji je odgovoran za obradu ovog prekida, učitava se u programski brojač procesora. U zavisnosti od arhitekture računara i uređaja operativnog sistema, može postojati ili jedan program za obradu svih prekida, ili može postojati poseban program za obradu za svaki uređaj i svaku vrstu prekida. Ako je na raspolaganju više programa za obradu prekida, procesor mora odrediti koji će pozvati. Ove informacije mogu biti sadržane u originalnom signalu prekida; u suprotnom, kako bi dobio potrebne informacije, procesor mora redom ispitati sve uređaje kako bi utvrdio koji je poslao prekid.

Čim se nova vrijednost učita u programski brojač, procesor prelazi na sljedeći ciklus instrukcija, počevši je preuzimati iz memorije. Budući da se naredba preuzima s lokacije, čiji je broj postavljen sadržajem programskog brojača, kontrola prelazi u rutinu prekida. Izvođenje ovog programa podrazumijeva sljedeće operacije.

Sadržaj brojača programa i statusna riječ programa koji se prekida već su pohranjeni u sistemskom steku. Međutim, ovo nisu sve informacije koje se odnose na stanje izvršnog programa. Na primjer, trebate spremiti sadržaj registara procesora jer će ti registri možda biti potrebni rukovatelju prekida. Stoga je potrebno spremiti sve podatke o stanju programa. Obično rukovatelj prekida započinje upisivanjem sadržaja svih registara u stek. Ostale informacije koje treba zadržati razmatraju se u Poglavlju 3, "Opisivanje i kontrola procesa". Na sl. prikazan je jednostavan primjer u kojem se korisnički program prekida nakon izvršavanja naredbe iz ćelije N. Sadržaj svih registara, kao i adresa sljedeće naredbe (N + 1), ukupno, čine M riječi, gurnut na hrpu. Pokazivač na hrpu se zatim ažurira kako bi pokazao na novi vrh steka. Brojač programa je također ažuriran kako bi označio početak rutine prekida.

Rukovalac prekida sada može započeti svoj rad. Rukovanje prekidima uključuje provjeru informacija o statusu koje se odnose na I / O operacije ili druge događaje koji su pokrenuli prekid. To može uključivati ​​i slanje dodatnih uputa ili poruka obavijesti I / O uređajima.

Nakon završetka obrade prekida, prethodno spremljene vrijednosti izlaze iz steka, koje se ponovo stavljaju u registre, čime se nastavlja stanje u kojem su bile prije prekida.

Zadnji korak je vraćanje riječi statusa programa i sadržaja programskog brojača iz steka. Kao rezultat toga, naredba prekinutog programa bit će sljedeća.

Zbog činjenice da prekid nije potprogram koji se poziva iz programa, važno je za potpuni oporavak zadržati sve informacije o stanju prekinutog programa. Međutim, do prekida može doći u bilo koje vrijeme i bilo gdje u korisničkom programu. Ovaj događaj je nepredvidljiv.

Regulator prekida

Kontroler prekida je dizajniran za obradu i arbitražu dolaznih servisnih zahtjeva do centralnog procesora sa perifernih uređaja. Po analogiji, funkcija kontrolera prekida može se usporediti sa sekretarom nekog šefa. Sekretar mora odlučiti koji će od posjetitelja biti prvi primljen kod šefa, a koji kasnije, na osnovu prioriteta koje je dao šef i statusa samog posjetitelja. Slično u računarskom sistemu, moguće je da nekoliko perifernih uređaja šalje signal za prekid ili zahtjev za prekidom. U računarskoj literaturi ovaj signal se naziva IRQ (Interrupt Request).

Kao što je gore spomenuto, prekidi imaju određeni prioritet, što omogućava kontrolerima prekida da u datom trenutku daju prednost jednom uređaju nad drugim. U modernom računaru postoji do 16 vanjskih i perifernih uređaja generisanje prekida. Ovi uređaji su:
–IRQ 0, sistemski mjerač vremena; –IRQ 1, tastatura; –IRQ 2, koristi se za ispitivanje uređaja povezanih kaskadno; –IRQ 8, sat u stvarnom vremenu; –IRQ 9, rezervirano; –IRQ 10, rezervirano; –IRQ 11, rezervirano; –IRQ 12, ps / 2 - miš; –IRQ 13, koprocesor; –IRQ 14, kontroler tvrdog diska; –IRQ 15, rezervirano; –IRQ 3, portovi COM2, COM4; –IRQ 4, portovi COM1, COM3; –IRQ 5, port LPT2; –IRQ 6, kontroler disketnog pogona; –IRQ 7, LPT1 port, štampač.

Ovdje su signali navedeni u padajućem redoslijedu prioriteta. Možete vidjeti da je nakon IRQ 2, nakon čega slijedi IRQ 8. Činjenica je da se u jednom trenutku kontroler prekida sastojao od dva mikro kruga, jedan je bio spojen na drugi. Ovaj drugi mikrokružni spoj spojen je na liniju IRQ 2, tvoreći kaskadu. Služi linijama IRQ8 - IRQ 15. Zatim slijede linije prvog mikro kruga.

Prekinite rad kontrolera

Kontrolori prekida smatra se čipom Intel 8259A, koji su se koristili u sada veoma starim računarima sa procesorima do serije 386. Ovi računari su obično imali 2 8259A čipa spojena kaskadno, to jest jedan na drugi. Jedan od mikro kola spojen preko linije zahtjeva za prekidom direktno na procesor je master ili master. Ostatak, povezan sa gospodarom putem sličnih pinova, naziva se robovi.


Slika 3. Shema ožičenja kontrolera prekida i njihova interakcija sa centralnim procesorom

Slika 3 prikazuje dijagram povezivanja kontrolera prekida i njihovu interakciju sa centralnim procesorom. Signali prekida s perifernih uređaja ili slave kontrolera šalju se na ulaze IR0 - IR7 glavnog kontrolera. Interna logika glavnog kontrolera obrađuje dolazne zahtjeve u smislu prioriteta. Ako je prioritet zahtjeva uređaja dovoljan, tada se na INT izlazu kontrolera generira signal koji se dovodi na INTR ulaz procesora. U suprotnom, zahtjev je blokiran.

Ako procesor dopušta prekide, tada nakon završetka izvršavanja trenutne naredbe generira niz signala na INTA liniji koji podređeni kontroler čini imunim na dolazne nove zahtjeve za prekidom, a osim toga i podatke iz unutrašnjih registara kontrolera se šalje u liniju podataka iz internih registara kontrolera pomoću kojih procesor prepoznaje vrstu prekida.

Procesor prenosi dozvolu za prekid kontroleru preko kontrolera sabirnice. RD signal je namijenjen kontroleru prekida za postavljanje sadržaja unutrašnjih registara na sabirnicu podataka. Na signal WR, kontroler prekida, naprotiv, prima podatke sa istoimene sabirnice i upisuje ih u interne registre. U skladu s tim, ovo utječe na način rada kontrolera prekida.

CS ulaz je spojen na sabirnicu adresa i ovaj signal se koristi za identifikaciju određenog kontrolera prekida. Ulaz A0 pokazuje na port kontrolera prekida u I / O prostoru.

Ulazi IR0 - IR7 su dizajnirani za prijem zahtjeva za prekid od perifernih uređaja i slave kontrolera.

Izlazi CAS0 - CAS2 su dizajnirani za identifikaciju specifičnog slave kontrolera.

U članku se raspravlja o hardverskim prekidima i uređaj, funkcije, rad kontrolera prekida. Ovaj kontroler prekidi su se pojavili na prvim računarima kompatibilnim sa računarom. Od tada su se i procesori i sam računar dosta promijenili, iako su neke stvari ostale. Stoga je, kako bi bilo jasnije, razmotrena organizacija kontrolera prekida 8295A.

Gornji dijagram prikazuje signale koji dolaze ne samo na slave i master kontrolere prekida, već i na ostale slave. Međutim, vaš računar ili laptop zapravo imaju 2 kontrolera prekida kao što je gore navedeno: master i slave. Ali možete stvoriti vlastiti računarski sistemičime se koristi do 64 slave kontrolera prekida.

U modernim računarima već duže vrijeme funkcije kontrolera prekida ne izvode ga mikro kola 8259A, već južni most. Međutim, za sve programe i uređaje sve ostaje isto. Štaviše, kontroler prekida se može programirati, a internim registrima i portovima se mora pristupiti na isti način kao i kontroleru 8259A.

Zaključak

U ovom radu razmatrani su prekidi, naime rukovanje hardverskim prekidima i princip rukovanja prekidima. Također se smatraju kontrolerima prekida i njihovim principom rada.

Prekid znači privremeni prekid glavnog procesa izračunavanja radi izvođenja nekih planiranih ili neplaniranih radnji uzrokovanih radom hardvera ili programa. Mehanizam prekida podržan je na hardverskom nivou. Hardverski prekidi nastaju kao reakcija mikroprocesora na fizički signal s nekog uređaja (tastatura, sistemski sat, tastatura, tvrdi disk itd.); Ti prekidi su asinhroni u vremenu nastanka, tj. javljaju u slučajnim vremenima.

Regulator prekida dizajniran za obradu i arbitražu dolaznih servisnih zahtjeva do centralnog procesora sa perifernih uređaja. Prekidi imaju određeni prioritet, što omogućava kontroler prekida dati prednost jednom uređaju u određenom trenutku drugom. U modernom računaru postoji do 16 vanjskih i perifernih uređaja koji stvaraju prekide.

Bibliografija

  1. Predavanje. Prekida. Email Resurs. http://hromatron.narod.ru/_lekcii/prerivania_lekcia_g2013.htm
  2. Sistemski prekidi | Hardverski prekid | Rukovanje prekidima http://life-prog.ru/view_os.php?id=16
  3. Regulator prekida. Email Resurs http://sdelaycomputersam.ru/Controller_irq.php,
  4. Prekida. Regulator prekida. Uređaj, funkcije, rad. Email Resurs http://sdelaycomputersam.ru/Controller_irq.php
  5. Struktura i inicijalizacija E-resursa kontrolera prekida Intel 8259A https://dev64.wordpress.com/2012/05/30/8259-programming/
Dobro je kada se nakon montaže ili planirane modernizacije računar pokrene prvi put i radi stabilno i bez grešaka. Mnogo je gore ako se pojave neočekivani problemi - spontano ponovno pokretanje i zamrzavanje, pad programa, neispravnost ili "nevidljivost" uređaja itd. Prvi razlog koji obično pada na pamet u ovom slučaju je sukob prekida. Znamo li dobro prirodu ovog fenomena, jesmo li dovoljno spremni za borbu protiv njega?

Šta je IRQ
Prekidi su osnovni mehanizam reakcije sistema na novonastale događaje. Hardverski prekidi, koji se obično nazivaju IRQ (Interrupt ReQuest), jesu fizički signali, pomoću kojih kontroler uređaja obavještava procesor o potrebi obrade nekog zahtjeva. Uobičajeno, shema rukovanja prekidima izgleda ovako:
1) procesor prima signal prekida i njegov broj;
2) posebna tabela se koristi za pronalaženje adrese programa odgovornog za obradu prekida sa datim brojem - rukovaoca prekida;
3) procesor obustavlja trenutni posao i prelazi na izvršavanje rukovaoca (u opštem slučaju, ovo je neka vrsta upravljačkog programa);
4) vozač pristupa uređaju i provjerava uzrok prekida;
5) pokrenute su tražene radnje - inicijalizacija, konfiguracija uređaja, razmjena podataka itd.
6) upravljački program izlazi i procesor se vraća na prekinuti zadatak.
Očigledno, za ispravan rad mehanizma prekida, moraju biti ispunjena dva uslova: prvo, signal zahtjeva mora doprijeti do procesora, i drugo, upravljački program mora pravilno reagirati na ovaj signal. U slučaju sukoba, drugi uvjet nije ispunjen: signal prekida stiže, ali se reakcija na njega pokazuje netočnom, zbog čega imamo (u najboljem slučaju) neispravan uređaj.

Sukob
Možemo reći da je sukob situacija u kojoj nekoliko objekata istovremeno pokušava pristupiti resursu koji je namijenjen samo jednom od njih. Do sukoba prekida dolazi kada više uređaja koristi istu liniju prekida za slanje signala zahtjeva, a ne postoji mehanizam za rukovanje istovremenim zahtjevima. Ako upravljački program, koji prima kontrolu, ne radi s uređajem koji je poslao zahtjev, dolazi do kvara ili jednostavno jedan od uređaja ne radi.
Postavlja se pitanje: može li nekoliko uređaja koristiti istu liniju prekida, ili je to u načelu nemoguće? Uostalom, ako vozač može odrediti od koga je točno došao zahtjev, tada će reagirati na signale samo sa "svog" uređaja, zanemarujući sve ostale. Ali to se na neki način mora unaprijed dogovoriti, inače je sukob neizbježan.
Lokalna PCI sabirnica dizajnirana je sa dijeljenjem prekida na umu. Svaki PCI uređaj mora ispravno raditi na istoj liniji prekida s drugim PCI uređajima. To se radi na sljedeći način: činjenicu o prisutnosti signala na liniji prekida određuje ne ivica, tj. promjenom naponskog nivoa, već samom činjenicom prisutnosti određenog napona. Nekoliko uređaja može promijeniti napon u liniji odjednom, postajući takoreći u redu za servis.
Stoga dijeljenje istog IRQ -a između više PCI uređaja po definiciji nije sukob. Međutim, ponekad nastanu problemi. Prvo, ne rade svi PCI uređaji ispravno na istoj liniji prekida s drugima. Drugo, ponekad vozači imaju greške zbog kojih ne mogu ispravno odrediti izvor signala, ometajući druge upravljačke programe. Treće, ne rade svi uređaji na PCI sabirnici; na primjer, ISA uređaji, koji uključuju, na primjer, kontrolere porta COM / LPT, ne mogu dijeliti prekide s drugima. Da biste bili jasni o tome kako možete izbjeći ili riješiti sukobe, morate razumjeti kako se upravlja IRQ -ovima.

Organizacija hardverskih prekida u personalnom računaru
Kao sto znas, personalnih računara započeo sa IBM računarom. Njegova arhitektura uključuje osam linija hardverskih prekida (IRQ), kojima je upravljao poseban kontroler. Svakom od njih je dodijeljen broj koji određuje prioritet prekida i adresu njegovog rukovaoca (tzv. Vektor prekida). Nova arhitektura, IBM PC AT, osigurala je još osam linija prekida, za koje je korišten drugi kontroler, spojen na jednu od linija prekida prvog kontrolera. Nažalost, ova je arhitektura bila posljednja nakon što je IBM izgubio sposobnost upravljanja razvojem platforme koju je stvorio, pa svi moderni računari i dalje imaju samo šesnaest prekida, od kojih jedan koristi drugi kontroler.
IBM PC AT računalo imalo je samo jednu sabirnicu preko koje su uređaji mogli komunicirati s procesorom i memorijom - ISA. Većina linija prekida dodijeljena je standardnim ISA uređajima, ostale su rezervirane za budućnost. Kad je došla ova budućnost, postalo je jasno da je nova univerzalni autobus PCI je dobio samo četiri besplatna prekida. Stoga je izmišljen pametan mehanizam za dijeljenje prekida (IRQ dijeljenje) i dinamičku redefiniciju brojeva (IRQ upravljanje ili mapiranje).
Suština mehanizma za kontrolu prekida PCI uređaja je sljedeća. Općenito, postoje četiri fizičke PCI linije prekida koje se nazivaju PIRQ0, PIRQ1, PIRQ2 i PIRQ3. Spojeni su na kontroler prekida. Čini se da svaki PCI uređaj sa svoje strane ima četiri konektora, nazvana INT A, INT B, INT C i INT D. Linije možete spojiti na konektore bilo kojim redoslijedom. Na primjer, za prvi PCI utor možete izvesti sljedeće ožičenje: PIRQ0 - INT A, PIRQ1 - INT B, PIRQ2 - INT C, PIRQ3 - INT D. A za drugi - na drugačiji način: PIRQ0 - INT B , PIRQ1 - INT C, PIRQ2 - INT D, PIRQ3 - INT A. Obično je uređaju potrebna samo jedna linija za prekid spojena na INT A. Kada je instaliran u prvi utor, uređaj koristi liniju PIRQ0, a drugi utor će imati PIRQ1 linija na istom pinu. Stoga će uređaji u različitim utorima koristiti različite fizičke linije prekida. Hardverski sukob između njih bit će uklonjen.
AGP sabirnica, koja je u stvari specijalizirana PCI modifikacija, također koristi jednu od PIRQ linija - obično PIRQ0.
Za moderne sisteme četiri linije nisu dovoljne, pa novi čipseti često koriste osam PIRQ linija, koje su na isti način povezane u različitim kombinacijama s PCI utorima i ugrađenim uređajima.
PIRQ linije su spojene na kontroler prekida. Njima se, kao i ostalim linijama, dodjeljuju logički IRQ brojevi. Ako postoji više uređaja na istoj fizičkoj liniji (a to je dopušteno), svi će imati isti IRQ broj. Ako su uređaji na različitim fizičkim linijama, i dalje mogu primati iste IRQ brojeve. Normalni upravljački programi omogućit će im nesmetano trčanje bez žrtvovanja performansi, budući da PCI sabirnicu još uvijek može snimiti samo jedan uređaj. Najvažnije je prepoznati s kojeg je uređaja signal došao.
PIRQ brojevi linija automatski se dodjeljuju zahvaljujući zloglasnom Plug & Play mehanizmu. Ali postoje i Plug & Play ISA uređaji. Takođe imaju mogućnost automatskog dobivanja IRQ broja. Ali njihova linija prekida isključivo njima pripada, a ako jedna od linija PIRQ dobije isti broj, doći će do nerješivog sukoba.
Tako smo shvatili da PCI uređaji ne bi trebali imati problema s IRQ sukobom. Ako, naravno, rade ispravno, a to nije uvijek slučaj. Osim toga, upravljački programi moraju podržavati mehanizam dijeljenja prekida. ISA uređaji ne znaju dijeliti linije prekida i stoga su izazivači sukoba. Stoga se problem uklanjanja sukoba svodi na ispravnu dodjelu brojeva (izvor problema su ISA uređaji i "krivi" upravljački programi) ili na razdvajanje duž različitih fizičkih linija ("krivi" PCI kontroleri).
Pogledajmo kako su brojevi dodijeljeni u sistemu i kako možemo utjecati na ovaj proces.

Mapa prekida
Kao što sam rekao, većina IRQ brojeva već je zauzeta standardnim uređajima, bolje rečeno, dodijeljena je njihovim linijama prekida. Idemo kroz naredbu:
0 - sistemski mjerač vremena (broj je uvijek zauzet);
1 - tastatura (broj je uvek zauzet);
2 - drugi kontroler prekida (uvijek zauzet);
3 - COM2 port (može se onemogućiti i broj se može otpustiti);
4 - COM1 port (može se onemogućiti i broj se može otpustiti);
5 - LPT2 port (obično je broj slobodan);
6 - kontroler diskete (može se onemogućiti i broj otpustiti);
7 - LPT1 port (ako nije u EPP ili ECP modu, tada je broj slobodan);
8 - sat u stvarnom vremenu (uvijek zauzet);
9 - besplatno;
10 - besplatno;
11 - besplatno;
12 - PS / 2 miš (može biti besplatan ako takvog miša nema);
13 - koprocesor (uvijek zauzet);
14 i 15 - kontroler tvrdi diskovi(može se onemogućiti, a broj je napušten).
U tipičnom sistemu dostupni su brojevi 5, 7, 9-11, odnosno pet od petnaest. Osim toga, možete sigurno onemogućiti COM2 i LPT1 portove, povećavajući broj besplatnih brojeva na sedam. Besplatno ne znači da nisu zaposleni, samo je moguće slobodno miješanje između njih.
Svaki sistem ima tri standardna PCI uređaja - ACPI, USB kontrolere i video karticu, od kojih će svaki uzeti jedan broj. Složeni uređaj (na primjer, zvučna kartica) može zahtijevati više linija - INT A, INT B, itd. za njihove komponente, koje neće doći u sukob jedna s drugom (uostalom, različite fizičke linije), ali s drugim uređajima - lako.
Kako se brojevi prekida trenutno dodjeljuju možete saznati na nekoliko načina. Na samom početku pokretanja računara pojavljuje se tablica sa tekstualnom konfiguracijom. Odmah nakon toga nalazi se lista PCI uređaja sa dodijeljenim IRQ brojem (pogledajte snimak ekrana). Drugi način funkcionira na Windows 9x. Na upravljačkoj ploči nalazi se ikona "Sistem", a u pozvanom apletu kartica "Uređaji". Odabiremo svojstva uređaja "Računalo" i svi će uređaji biti navedeni na popisu, s naznakom njihovog IRQ -a (pogledajte snimak zaslona).
U operativnom sistemu Windows 2000 nemamo pristup upravljanju prekidima, pa za pregled IRQ liste moramo koristiti standardni uslužni program (Kontrolna tabla / Administrativni alati / Upravljanje računarom / Informacije o sistemu / Hardverski resursi).

Dodjela BIOS -a IRQ
U sistemu se IRQ brojevi dva puta raspoređuju između fizičkih linija. Prvi put to radi sistemski BIOS pri pokretanju. Svakom Plug & Play uređaju (svi PCI, moderni ISA, integrirani uređaji), odnosno njegovoj liniji prekida, dodjeljuje se jedan od deset mogućih brojeva. Ako nema dovoljno brojeva, nekoliko redova dobiva jedan zajednički. Ako su ovo PIRQ linije, onda je u redu - u prisutnosti normalnih upravljačkih programa i podrške operativnog sistema (pogledajte dolje za ovo), sve će raditi. A ako nekoliko ISA uređaja ili PCI i ISA uređaja dobiju isti broj, sukob je jednostavno neizbježan, a tada je potrebno intervenirati u procesu distribucije.
Prije svega, morate onemogućiti sve nekorištene ISA uređaje (u sistemima bez ISA utora, oni su takođe prisutni) - portove COM1, COM2 i disketnu jedinicu. Također možete onemogućiti EPP i ECP načine rada LPT porta, tada će prekid IRQ7 postati dostupan.
V BIOS Setup potreban nam je odjeljak "PCI / PNP konfiguracija". Postoje dva osnovna načina za utjecaj na dodjelu IRQ brojeva: blokirajte određeni broj i direktno dodijelite PIRQ broj linije.
Prva metoda dostupna je za sve BIOS -e: pronađite popis stavki "IRQ x koristi:" (u novi BIOS skriveno u podmeniju "IRQ resursi"). Oni prekidi koji se trebaju dodijeliti isključivo ISA uređajima trebaju biti postavljeni na "Naslijeđeni ISA". Tako će se pri dodjeljivanju brojeva PCI uređajima ovi prekidi preskočiti. To bi trebalo učiniti ako ISA uređaj ustraje u jednom prekidu s PCI uređajem, zbog čega oba ne rade. Zatim pronalazimo broj ovog IRQ -a i blokiramo ga u BIOS -u za postavljanje. PCI uređaj ide na novi broj IRQ, ali ISA uređaj ostaje. Sukob rešen.
Drugi, prikladniji način kontrole IRQ brojeva je direktno dodjeljivanje. U istom podmeniju BIOS Setup mogu biti stavke oblika "Slot X koristi IRQ" (drugi nazivi: "PIRQx koristi IRQ", "PCI utor x prioritet", "INT Pin x IRQ").
Uz njihovu pomoć, svakoj od četiri PIRQ linije može se dodijeliti određeni broj. Inače, u novom AwardBIOS-u 6.00 možete vidjeti koji uređaji (uključujući i ugrađene) koriste određenu liniju. Samo pogledajte desna strana Zaslon za postavljanje BIOS -a: fotografija prikazuje kako sam prešao kursorom preko stavke "Slot 1/5 use IRQ no.", A natpis "Display Contr." Pojavio se s desne strane. Odnosno, prvu PIRQ liniju koristi video kartica. Ako sada umjesto "Automatski" stavim bilo koji određeni broj, video kartica će se prebaciti na ovaj prekid.

Dodjela IRQ brojeva Windows alati
Drugi put se dodjeljuju brojevi prekida operativni sistem... Kao što su pokazali moji eksperimenti, Windows "98 počinje ometati radnje koje BIOS izvodi" ohm samo u ekstremnim slučajevima. Ako imate normalan BIOS, ovdje opisane tehnike nisu potrebne.
Treba napomenuti da je za ispravan rad IRQ dijeljenja i mehanizama dinamičke dodjele potrebno da Windows prepozna skup čipova. matična ploča i preuzeli IRQ Miniport. Što noviju verziju ima Windows, više skupova čipova podržava vlastiti miniport (PCIIMP.PCI). Međutim, uvijek je najbolje igrati na sigurno i instalirati najnovije upravljačke programe za čipset.
U operativnom sistemu Windows 98, IRQ sistem dodjeljivanja se kontrolira pomoću standardnog upravitelja uređaja. Na listi sistemske uređaje morate pronaći PCI sabirnicu. U njegovim svojstvima postoji posebna kartica (pogledajte snimak ekrana). Ako je sve ispravno konfigurirano, tamo će se spomenuti miniport ("uspješno učitan") i kontrola PCI sabirnica(Upravljanje) će biti omogućeno. Dakle, Windows "98 ima sredstvo za kontrolu distribucije brojeva prekida između fizičkih linija. Ali budući da se BIOS često dobro nosi s tim, ovaj mehanizam nije uključen.
Ali ponekad je jednostavno potrebno. Kao što sam već rekao, PCI uređaji ne bi trebali biti u sukobu ako koriste isti logički prekid. Druga stvar su ISA uređaji, koji također uključuju COM i LPT portove. Ako uređaj nije Plug & Play, BIOS to možda neće primijetiti dajući prekid sa kojim je zauzet PCI uređaju. Tada morate rezervirati prekid. To se radi u dispečeru Windows uređaji"98: odaberite" Computer "uređaj, pozovite njegova svojstva, prebacite se na drugu karticu. Tada je sve jasno.
Osim redundancije, možete izravno postaviti broj prekida za uređaj. Da biste to učinili, morate pronaći karticu "Resursi" u njenim svojstvima, onemogućiti automatsko ugađanje i pokušajte promijeniti dodijeljeni broj prekida.
Nažalost, ovo ne uspijeva uvijek.
Windows 2000 je poseban sistem. Ako imate savremeni računar onda vjerojatno podržava ACPI sučelje za konfiguraciju. U ovom slučaju, Windows 2000 će potpuno zanemariti radnje BIOS -a i "objesiti" sve PCI uređaje na jedan logički prekid. Općenito, ovo će dobro funkcionirati (kada nema ISA -e), ali ponekad se pojave problemi. Da biste mogli promijeniti brojeve prekida, morate promijeniti HAL jezgru ili ponovo instalirati Windows 2000 sa onemogućenim ACPI -om u BIOS -u. Zamjena jezgre vrši se na sljedeći način: u upravitelju uređaja odaberite "Računalo" / "Računalo s ACPI", promijenite upravljački program u " Standardni računar", ponovo pokrenite sistem. Ako to ne uspije, morat ćete ponovo instalirati Windows 2000.
Nadam se da će vam gore navedene informacije pomoći u borbi protiv hardverskih grešaka. I zapamtite: većina problema koji se javljaju povezana je s nizak nivo poznavanje rada na računaru domaćina računara. Stoga uvijek morate težiti samoobrazovanju, tada će biti manje problema, a oni koji se pojave neće se činiti nerješivima.

Vjerojatno najčešći sukob prekida (IRQ) povezan je s integriranim serijskim portom COM2 koji se nalazi u modernom vremenu matične ploče i interni modem (što znači punopravni interni PC modem, a ne softverski modem, koji se takođe naziva WinModem). Činjenica je da punopravni interni modem već ima podršku za određeni port; prema zadanim postavkama, ovaj port je dodijeljen COM2, a sistem obično omogućava i drugi serijski port. Dakle, sistem ima dva identična porta koji koriste iste resurse (prekidi i adrese I / O portova).

Rješenje ovog problema je prilično jednostavno: uđite u BIOS Setup i onemogućite ugrađeni COM2 port. Osim toga, možete razmisliti o onemogućavanju COM1 porta, koji se također rijetko koristi. Onemogućavanje neiskorištenih COMx portova jedan je od boljih načina otpuštanje prekida (IRQ) za druge uređaje.

Drugi uobičajeni sukob također uključuje serijske portove. U standardnoj tablici preslikavanja prekida možda ste primijetili da je IRQ3 dodijeljen COM2, a IRQ4 COM1. Problem nastaje kada se sistemu dodaju dodatni COM3 i / ili COM4 portovi i besplatni prekidi im se ne dodjeljuju ručno (prema zadanim postavkama koriste iste IRQ3 i IRQ4).

Dodatne komplikacije unosi činjenica da neke priključne kartice ne dopuštaju odabir prekida osim IRQ3 i IRQ4. Kao rezultat toga, dodjeljivanje IRQ3 na COM4 i IRQ4 na COM3 dovodi do sukoba sa COM1 i COM2, koji također koriste ove prekide: dva porta ne mogu istovremeno koristiti isti kontrolni kanal prekida. Za vrijeme rada u DOS -u to je bilo dopušteno, budući da se u njemu odjednom mogao izvoditi samo jedan zadatak, ali u Windowsima i OS / 2 to je potpuno nemoguće. Da bi se u računaru moglo koristiti više od dva paralelna COM porta, potrebna je multiport ploča koja osim prekida numeriranih 3 i 4 dopušta upotrebu dodatnih prekida. Dijeljenje prekida je, u principu, prihvatljivo za uređaje koji obično ne rade istovremeno (ili kontinuirano). Priključci ne spadaju u ovu kategoriju uređaja. Moguće je koristiti prekid za skener i modem zajedno, međutim, u ovom slučaju, ako se koriste istovremeno, doći će do sukoba. Srećom, većina uređaja koji su ranije koristili portove (poput miševa, pisača naljepnica i spoljni modemi) sada se povežite na USB portove, pa postoje problemi s potrebom za podrškom za više portova. savremeni korisnici računari se ne bi trebali pojavljivati.

Ako i dalje trebate koristiti više serijskih portova, najbolje rešenje bit će kupovina ploče sa više portova koja ili pruža mogućnost postavljanja nekonfliktnih prekida, ili sadrži vlastiti procesor koji omogućava da se jedan prekid sistema distribuira između nekoliko portova. Neke starije multiport kartice imale su ISA sučelje, ali danas su ih zamijenile PCI kartice, koje također nude prednosti performansi.

Ako neki uređaj naveden u tablici nedostaje (na primjer, ugrađeni port miša (IRQ12) ili drugi paralelni port (IRQ5)), njihovi prekidi se mogu smatrati dostupnima. Na primjer, drugi paralelni priključak je izuzetno rijedak, pa se IRQ5 prekid koji mu je dodijeljen najčešće koristi za zvučnu karticu. Slično, IRQ15 prekid se koristi za sekundarni IDE kontroler. Ako u sistemu nema diskovnih uređaja povezanih na sekundarni IDE kanal, možete onemogućiti ovaj kontroler u BIOS -u, čime ćete osloboditi još jedan prekid za druge uređaje.

Treba napomenuti da je najlakši način provjere postavki prekida u Windows upravitelju uređaja. Na Windows 95b postoji program HWDIAG, a na Windows 98 i novijim kasnije verzije- Informacije o sistemu konzole. Ovi uslužni programi omogućuju vam da dobijete detaljan izvještaj o korištenju resursa u sistemu, kao i instalirani upravljački programi uređaja i stavke registra Windows za svaki uređaj. V Windows sistemi Za XP i Vista informacije o sistemu pruža program Msinfo32.

Da biste osigurali najveći mogući broj zajedničkih prekida u modernom sistemu bez ISA konektora, slijedite ove korake pri radu sa sistemskim BIOS -om.

  1. Onemogućite sve neiskorištene portove u sistemskom BIOS -u. Na primjer, ako se umjesto serijskih i paralelnih portova koriste USB portovi, onemogućite ih. Kao rezultat toga, mogu se otpustiti do tri prekida.
  2. Navedite IRQ prekid objavljen u koraku 1 na popisu dostupnih prekida za PCI / PnP uređaje. U zavisnosti od BIOS verzija odgovarajući parametri dostupni su u odjeljku PnP / PCI Rescue Exclusion ili PnP / PCI Configuration.
  3. Aktivirajte opciju Reset Configuration Data da biste obrisali IRQ tablice usmjeravanja u CMOS memoriji.
  4. Spremite promjene i izađite iz programa za postavljanje BIOS -a.

Dobro je kada se nakon montaže ili planirane modernizacije računar pokrene prvi put i radi stabilno i bez grešaka. Mnogo je gore ako se pojave neočekivani problemi - spontano ponovno pokretanje i zamrzavanje, pad programa, neispravnost ili "nevidljivost" uređaja itd. Prvi razlog koji obično pada na pamet u ovom slučaju je sukob prekida. Znamo li dobro prirodu ovog fenomena, jesmo li dovoljno spremni za borbu protiv njega?

Šta je IRQ


Prekidi su osnovni mehanizam reakcije sistema na novonastale događaje. Hardverski prekidi, koji se obično nazivaju IRQ (Interrupt ReQuest), su fizički signali koje kontroler uređaja koristi za informiranje procesora da obradi neki zahtjev. Uobičajeno, shema rukovanja prekidima izgleda ovako:
1) procesor prima signal prekida i njegov broj;
2) posebna tabela se koristi za pronalaženje adrese programa odgovornog za obradu prekida sa datim brojem - rukovaoca prekida;
3) procesor obustavlja trenutni rad i prebacuje se na izvršavanje rukovaoca (u opštem slučaju, ovo je neka vrsta upravljačkog programa);
4) vozač pristupa uređaju i provjerava uzrok prekida;
5) pokrenute su tražene radnje - inicijalizacija, konfiguracija uređaja, razmjena podataka itd.
6) upravljački program izlazi i procesor se vraća na prekinuti zadatak.
Očigledno, za ispravan rad mehanizma prekida, moraju biti ispunjena dva uslova: prvo, signal zahtjeva mora doprijeti do procesora, i drugo, upravljački program mora pravilno reagirati na ovaj signal. U slučaju sukoba, drugi uvjet nije ispunjen: signal prekida stiže, ali se reakcija na njega pokazuje netočnom, zbog čega imamo (u najboljem slučaju) neispravan uređaj.

Sukob

Možemo reći da je sukob situacija u kojoj nekoliko objekata istovremeno pokušava pristupiti resursu koji je namijenjen samo jednom od njih. Do sukoba prekida dolazi kada više uređaja koristi istu liniju prekida za slanje signala zahtjeva, a ne postoji mehanizam za rukovanje istovremenim zahtjevima. Ako upravljački program, koji prima kontrolu, ne radi s uređajem koji je poslao zahtjev, dolazi do kvara ili jednostavno jedan od uređaja ne radi.
Postavlja se pitanje: može li nekoliko uređaja koristiti istu liniju prekida, ili je to u načelu nemoguće? Uostalom, ako vozač može odrediti od koga je točno došao zahtjev, tada će reagirati na signale samo sa "svog" uređaja, zanemarujući sve ostale. Ali to se na neki način mora unaprijed dogovoriti, inače je sukob neizbježan.
Lokalna PCI sabirnica dizajnirana je sa dijeljenjem prekida na umu. Svaki PCI uređaj mora ispravno raditi na istoj liniji prekida s drugim PCI uređajima. To se radi na sljedeći način: činjenicu o prisutnosti signala na liniji prekida određuje ne ivica, tj. promjenom naponskog nivoa, već samom činjenicom prisutnosti određenog napona. Nekoliko uređaja može promijeniti napon u liniji odjednom, postajući takoreći u redu za servis.
Stoga dijeljenje istog IRQ -a između više PCI uređaja po definiciji nije sukob. Međutim, ponekad nastanu problemi. Prvo, ne rade svi PCI uređaji ispravno na istoj liniji prekida s drugima. Drugo, ponekad vozači imaju greške zbog kojih ne mogu ispravno odrediti izvor signala, ometajući druge upravljačke programe. Treće, ne rade svi uređaji na PCI sabirnici; na primjer, ISA uređaji, koji uključuju, na primjer, kontrolere porta COM / LPT, ne mogu dijeliti prekide s drugima. Da biste bili jasni o tome kako možete izbjeći ili riješiti sukobe, morate razumjeti kako se upravlja IRQ -ovima.

Organizacija hardverskih prekida u personalnom računaru


Kao što znate, personalni računari su započeli sa IBM računarom. Njegova arhitektura uključuje osam linija hardverskih prekida (IRQ), kojima je upravljao poseban kontroler. Svakom od njih dodijeljen je broj koji određuje prioritet prekida i adresu njegovog rukovaoca (tzv. Vektor prekida). Nova arhitektura, IBM PC AT, osigurala je još osam linija prekida, za koje je korišten drugi kontroler, spojen na jednu od linija prekida prvog kontrolera. Nažalost, ova je arhitektura bila posljednja nakon što je IBM izgubio sposobnost upravljanja razvojem platforme koju je stvorio, pa svi moderni računari i dalje imaju samo šesnaest prekida, od kojih jedan koristi drugi kontroler.
IBM PC AT računalo imalo je samo jednu sabirnicu preko koje su uređaji mogli komunicirati s procesorom i memorijom - ISA. Većina linija prekida dodijeljena je standardnim ISA uređajima, ostale su rezervirane za budućnost. Kad je ta budućnost došla, pokazalo se da je nova univerzalna PCI sabirnica dobila samo četiri besplatna prekida. Stoga je izmišljen pametan mehanizam za dijeljenje prekida (IRQ dijeljenje) i dinamičku redefiniciju brojeva (IRQ upravljanje ili mapiranje).
Suština mehanizma za kontrolu prekida PCI uređaja je sljedeća. Općenito, postoje četiri fizičke PCI linije prekida koje se nazivaju PIRQ0, PIRQ1, PIRQ2 i PIRQ3. Spojeni su na kontroler prekida. Čini se da svaki PCI uređaj sa svoje strane ima četiri konektora, nazvana INT A, INT B, INT C i INT D. Linije možete spojiti na konektore bilo kojim redoslijedom. Na primjer, za prvi PCI utor možete izvesti sljedeće ožičenje: PIRQ0 - INT A, PIRQ1 - INT B, PIRQ2 - INT C, PIRQ3 - INT D. A za drugi - na drugačiji način: PIRQ0 - INT B , PIRQ1 - INT C, PIRQ2 - INT D, PIRQ3 - INT A. Obično je uređaju potrebna samo jedna linija za prekid spojena na INT A. Kada je instaliran u prvi utor, uređaj koristi liniju PIRQ0, a drugi utor će imati PIRQ1 linija na istom pinu. Stoga će uređaji u različitim utorima koristiti različite fizičke linije prekida. Hardverski sukob između njih bit će uklonjen.
AGP sabirnica, koja je u stvari specijalizirana PCI modifikacija, također koristi jednu od PIRQ linija - obično PIRQ0.
Za moderne sisteme četiri linije nisu dovoljne, pa novi čipseti često koriste osam PIRQ linija, koje su na isti način povezane u različitim kombinacijama sa PCI utorima i uređajima ugrađenim u ploču.
PIRQ linije su spojene na kontroler prekida. Njima se, kao i ostalim linijama, dodjeljuju logički IRQ brojevi. Ako postoji više uređaja na istoj fizičkoj liniji (a to je dopušteno), svi će imati isti IRQ broj. Ako su uređaji na različitim fizičkim linijama, i dalje mogu primati iste IRQ brojeve. Normalni upravljački programi omogućit će im nesmetano trčanje bez žrtvovanja performansi, budući da PCI sabirnicu još uvijek može snimiti samo jedan uređaj. Najvažnije je prepoznati s kojeg je uređaja signal došao.
PIRQ brojevi linija automatski se dodjeljuju zahvaljujući zloglasnom Plug & Play mehanizmu. Ali postoje i Plug & Play ISA uređaji. Takođe imaju mogućnost automatskog dobivanja IRQ broja. Ali njihova linija prekida isključivo njima pripada, a ako jedna od linija PIRQ dobije isti broj, doći će do nerješivog sukoba.
Tako smo shvatili da PCI uređaji ne bi trebali imati problema s IRQ sukobom. Ako, naravno, rade ispravno, a to nije uvijek slučaj. Osim toga, upravljački programi moraju podržavati mehanizam dijeljenja prekida. ISA uređaji ne znaju dijeliti linije prekida i stoga su izazivači sukoba. Stoga se problem uklanjanja sukoba svodi na ispravnu dodjelu brojeva (izvor problema su ISA uređaji i "krivi" upravljački programi) ili na razdvajanje duž različitih fizičkih linija ("krivi" PCI kontroleri).
Pogledajmo kako su brojevi dodijeljeni u sistemu i kako možemo utjecati na ovaj proces.

Mapa prekida

Kao što sam rekao, većina IRQ brojeva već je zauzeta standardnim uređajima, bolje rečeno, dodijeljena je njihovim linijama prekida. Idemo kroz naredbu:
0 - sistemski mjerač vremena (broj je uvijek zauzet);
1 - tastatura (broj je uvek zauzet);
2 - drugi kontroler prekida (uvijek zauzet);
3 - COM2 port (može se onemogućiti i broj se može otpustiti);
4 - COM1 port (može se onemogućiti i broj se može otpustiti);
5 - LPT2 port (obično je broj slobodan);
6 - kontroler diskete (može se onemogućiti i broj otpustiti);
7 - LPT1 port (ako nije u EPP ili ECP modu, tada je broj slobodan);
8 - sat u stvarnom vremenu (uvijek zauzet);
9 - besplatno;
10 - besplatno;
11 - besplatno;
12 - PS / 2 miš (može biti besplatan ako takvog miša nema);
13 - koprocesor (uvijek zauzet);
14 i 15 - kontroler tvrdog diska (može se onemogućiti i broj otpustiti).
U tipičnom sistemu dostupni su brojevi 5, 7, 9-11, odnosno pet od petnaest. Osim toga, možete sigurno onemogućiti COM2 i LPT1 portove, povećavajući broj besplatnih brojeva na sedam. Besplatno ne znači da nisu zaposleni, samo je moguće slobodno miješanje između njih.
Svaki sistem ima tri standardna PCI uređaja - ACPI, USB kontrolere i video karticu, od kojih će svaki uzeti jedan broj. Složeni uređaj (na primjer, zvučna kartica) može zahtijevati nekoliko linija - INT A, INT B itd. za njihove komponente, koje neće doći u sukob jedna s drugom (uostalom, različite fizičke linije), ali s drugim uređajima - lako.
Kako se brojevi prekida trenutno dodjeljuju možete saznati na nekoliko načina. Na samom početku pokretanja računara pojavljuje se tablica sa tekstualnom konfiguracijom. Odmah nakon toga nalazi se lista PCI uređaja sa dodijeljenim IRQ brojem (pogledajte snimak ekrana). Drugi način funkcionira na Windows 9x. Na upravljačkoj ploči nalazi se ikona "Sistem", a u pozvanom apletu kartica "Uređaji". Odabiremo svojstva uređaja "Računalo" i svi će uređaji biti navedeni na popisu, s naznakom njihovog IRQ -a (pogledajte snimak zaslona).
U operativnom sistemu Windows 2000 nemamo pristup upravljanju prekidima, pa za pregled IRQ liste moramo koristiti standardni uslužni program (Kontrolna tabla / Administrativni alati / Upravljanje računarom / Informacije o sistemu / Hardverski resursi).

Dodjela BIOS -a IRQ

U sistemu se IRQ brojevi dva puta raspoređuju između fizičkih linija. Prvi put to radi sistemski BIOS pri pokretanju. Svakom Plug & Play uređaju (svi PCI, moderni ISA, integrirani uređaji), odnosno njegovoj liniji prekida, dodjeljuje se jedan od deset mogućih brojeva. Ako nema dovoljno brojeva, nekoliko redova dobiva jedan zajednički. Ako su ovo PIRQ linije, onda je u redu - u prisutnosti normalnih upravljačkih programa i podrške operativnog sistema (pogledajte dolje za ovo), sve će raditi. A ako nekoliko ISA uređaja ili PCI i ISA uređaja dobiju isti broj, sukob je jednostavno neizbježan, a tada je potrebno intervenirati u procesu distribucije.
Prije svega, morate onemogućiti sve nekorištene ISA uređaje (u sistemima bez ISA utora, oni su takođe prisutni) - portove COM1, COM2 i disketnu jedinicu. Također možete onemogućiti EPP i ECP načine rada LPT porta, tada će prekid IRQ7 postati dostupan.
U BIOS Setup -u potreban nam je odjeljak "PCI / PNP Configuration". Postoje dva osnovna načina za utjecaj na dodjelu IRQ brojeva: blokirajte određeni broj i direktno dodijelite PIRQ broj linije.
Prva metoda je dostupna za sve BIOS -e: pronađite listu stavki "IRQ x koristi:" (u novom BIOS -u je skriven u podmeniju "IRQ resursi"). Oni prekidi koji se trebaju dodijeliti isključivo ISA uređajima trebaju biti postavljeni na "Naslijeđeni ISA". Tako će se pri dodjeljivanju brojeva PCI uređajima ovi prekidi preskočiti. To bi trebalo učiniti ako ISA uređaj ustraje u jednom prekidu s PCI uređajem, zbog čega oba ne rade. Zatim pronalazimo broj ovog IRQ -a i blokiramo ga u BIOS -u za postavljanje. PCI uređaj prelazi na novi IRQ broj, ali ISA uređaj ostaje. Sukob rešen.
Drugi, prikladniji način kontrole IRQ brojeva je direktno dodjeljivanje. U istom podmeniju BIOS Setup mogu biti stavke oblika "Slot X koristi IRQ" (drugi nazivi: "PIRQx koristi IRQ", "PCI utor x prioritet", "INT Pin x IRQ").
Uz njihovu pomoć, svakoj od četiri PIRQ linije može se dodijeliti određeni broj. Inače, u novom AwardBIOS-u 6.00 možete vidjeti koji uređaji (uključujući i ugrađene) koriste ovu ili onu liniju. Pogledajte samo desnu stranu ekrana za postavljanje BIOS -a: fotografija prikazuje kako sam prešao kursorom preko stavke "Slot 1/5 use IRQ no.", A na desnoj strani pojavio se natpis "Contr. Display". Odnosno, prvu PIRQ liniju koristi video kartica. Ako sada umjesto "Automatski" stavim bilo koji određeni broj, video kartica će se prebaciti na ovaj prekid.

Dodjeljivanje IRQ -ova pomoću Windowsa

Drugi put operativni sistem dodjeljuje brojeve prekida. Kao što su pokazali moji eksperimenti, Windows "98 počinje ometati radnje koje BIOS izvodi" ohm samo u ekstremnim slučajevima. Ako imate normalan BIOS, ovdje opisane tehnike nisu potrebne.
Treba napomenuti da za ispravno funkcioniranje IRQ dijeljenja i mehanizama dinamičke dodjele Windows mora prepoznati čipset matične ploče i učitati IRQ Miniport. Što noviju verziju ima Windows, više skupova čipova podržava vlastiti miniport (PCIIMP.PCI). Međutim, uvijek je najbolje igrati na sigurno i instalirati najnovije upravljačke programe za čipset.
U operativnom sistemu Windows 98, IRQ sistem dodjeljivanja se kontrolira pomoću standardnog upravitelja uređaja. Pronađite PCI sabirnicu na popisu sistemskih uređaja. U njegovim svojstvima postoji posebna kartica (pogledajte snimak ekrana). Ako je sve ispravno konfigurirano, tamo će se spomenuti miniport ("uspješno učitan"), a upravljanje PCI sabirnicom (Upravljanje) će biti omogućeno. Dakle, Windows "98 ima sredstvo za kontrolu distribucije brojeva prekida između fizičkih linija. Ali budući da se BIOS često dobro nosi s tim, ovaj mehanizam nije uključen.
Ali ponekad je jednostavno potrebno. Kao što sam već rekao, PCI uređaji ne bi trebali biti u sukobu ako koriste isti logički prekid. Druga stvar su ISA uređaji, koji također uključuju COM i LPT portove. Ako uređaj nije Plug & Play, BIOS to možda neće primijetiti dajući prekid sa kojim je zauzet PCI uređaju. Tada morate rezervirati prekid. To se radi u Windows 98 Upravitelju uređaja: odaberite Računarski uređaj, pozovite njegova svojstva, prebacite se na drugu karticu.
Osim redundancije, možete izravno postaviti broj prekida za uređaj. Da biste to učinili, morate pronaći karticu "Resursi" u njenim svojstvima, onemogućiti automatsku konfiguraciju i pokušati promijeniti dodijeljeni broj prekida.
Nažalost, ovo ne uspijeva uvijek.
Windows 2000 je poseban sistem. Ako imate moderan računar, vjerovatno podržava ACPI sučelje za konfiguraciju. U ovom slučaju, Windows 2000 će potpuno zanemariti radnje BIOS -a i "objesiti" sve PCI uređaje na jedan logički prekid. Općenito, ovo će dobro funkcionirati (kada nema ISA -e), ali ponekad se pojave problemi. Da biste mogli promijeniti brojeve prekida, morate promijeniti HAL jezgru ili ponovo instalirati Windows 2000 sa onemogućenim ACPI -om u BIOS -u. Zamjena jezgre vrši se na sljedeći način: u upravitelju uređaja odaberite "Računalo" / "Računalo s ACPI", promijenite upravljački program u "Standardni računar", ponovo pokrenite sistem. Ako to ne pomogne, morat ćete ponovo instalirati Windows 2000.
Nadam se da će vam gore navedene informacije pomoći u borbi protiv hardverskih grešaka. I zapamtite: većina problema koji se javljaju povezana je sa niskim nivoom računarske pismenosti vlasnika računara. Stoga uvijek morate težiti samoobrazovanju, tada će biti manje problema, a oni koji se pojave neće se činiti nerješivima.