K čemu slouží číslo přerušení irq. Přerušení systému načte procesor

Konflikt je situace, ve které se několik objektů současně pokouší získat přístup ke zdroji, který je určen pouze pro jeden z nich. Ke konfliktu přerušení dochází, když více zařízení používá stejnou linku přerušení k odeslání signálu požadavku a neexistuje žádný mechanismus pro zpracování souběžných požadavků. Pokud ovladač, který dostává kontrolu, nefunguje se zařízením, které odeslalo požadavek, pak buď dojde k chybě, nebo jedno ze zařízení jednoduše nefunguje.

Nabízí se otázka: může několik zařízení používat stejnou přerušovací linku, nebo je to v zásadě nemožné? Koneckonců, pokud je řidič schopen určit, od koho přesně požadavek přišel, pak bude reagovat na signály pouze ze „svého“ zařízení, přičemž ignoruje všechny ostatní. To ale musí být předem nějak dohodnuto, jinak je konflikt nevyhnutelný.

Místní sběrnice PCI byla navržena s ohledem na sdílení přerušení. Každé zařízení PCI musí správně fungovat na stejné linii přerušení s ostatními zařízeními PCI. To se provádí následujícím způsobem: skutečnost o přítomnosti signálu na přerušovací lince není určena hranou, tj. změnu úrovně napětí, ale samotnou skutečností přítomnosti určitého napětí. Několik zařízení může změnit napětí v síti najednou a stát se tak, jakoby, ve frontě na služby.

Sdílení stejného IRQ několika zařízeními PCI tedy není podle definice konfliktem (obr). Někdy však nastanou problémy. Za prvé, ne všechna zařízení PCI pracují správně na stejné lince přerušení s ostatními. Za druhé, někdy mají řidiči chyby, kvůli kterým nemohou správně určit zdroj signálu, což narušuje ostatní ovladače. Za třetí, ne všechna zařízení fungují na sběrnici PCI; například zařízení ISA, která zahrnují například řadiče portů COM / LPT, nemohou sdílet přerušení s ostatními.

Rýže. Mapa IRQ Win2000 Device Manager - čipová sada IO PIC Intel 440BX

Rýže. Win2000 IRQ MAP - IO APIC - přes čipovou sadu KT266a

V důsledku toho jsou možné situace, kdy počítač začne často mrznout, odmítá provádět jakékoli funkce nebo dokonce jednoduše vypadne do tzv. modrá obrazovka smrti".

Apic (Advanced Programmable Interrupt Controller)

Jak je uvedeno výše, linka přerušení je pro počítač velmi vzácným zdrojem. S rozvojem počítačového průmyslu však počet různých externích zařízení v počítači neustále roste. Jedna základní deska může mít například 5-6 slotů PCI, slot AGP, vestavěný řadič IDE, vestavěný řadič SCSI, vestavěný síťový adaptér 1/2portu atd. A všechna tato zařízení vyžadují přerušení. Postupně chybělo 16 linek IRQ.

APIC Je řadič přerušení, který vám umožňuje použít 24 hardwarových přerušení místo 16. Omezení 16 přerušení hardwaru, které se od roku 1982 nezměnilo, brzdilo instalaci dalších zařízení v osobním počítači. Na konci roku 2001 se objevily první základní desky s APIC.

Rýže. Přerušení systému v prostředí s více procesory.

Předchozí popis byl pro PIC určené pro uniprocesorové systémy. Pokud systém obsahuje dva nebo více procesorů, tento přístup již není přípustný a jsou vyžadovány složitější PIC.

Všechno moderní procesory x86 obsahuje místní APIC. Každý místní APIC má 32bitové registry, interní hodiny, místní časovač a další dvě linky IRQ, LINT0 a LINT1, vyhrazené pro místní přerušení APIC. Všechny místní APIC jsou připojeny k externímu I / O APIC.

I / O APIC obsahuje sadu 24 IRQ linek, směrovací tabulku přerušení 24 vstupů, programovatelné registry a blok zpráv pro odesílání a přijímání zpráv na sběrnici APIC. Na rozdíl od pinů IRQ 8259A není priorita přerušení vázána na číslo pinu.

Každý záznam ve směrovací tabulce přerušení lze naprogramovat jednotlivě tak, aby zobrazoval vektor přerušení a jeho prioritu, procesor, který bude zpracovávat přerušení a jak bude tento procesor vybrán. Informace ve směrovací tabulce přerušení se používají k převodu každého externího signálu do zprávy adresované jednomu nebo více místním APIC přes sběrnici APIC.

Statická distribuce

Signál IRQ je dodáván do místních APIC uvedených v příslušném záznamu tabulky přesměrování IRQ. Přerušení je doručeno jednomu konkrétnímu CPU, více CPU nebo všem CPU.

Dynamická alokace

Signál IRQ je dodáván do místního APIC procesoru, který provádí proces s nejnižší prioritou.

Každý místní APIC má programovatelný registr priority úlohy, který se používá k výpočtu priority aktuálního procesu. Intel očekává, že tento registr bude upraven jádrem operačního systému při každém přepnutí procesu.

Kromě distribuce přerušení mezi procesory umožňuje systém multi-APIC CPU generovat interprocesorová přerušení. Když si CPU přeje poslat přerušení jinému CPU, uloží vektor přerušení a cílové místní ID APIC do registru ICR (Interrupt Command Register) svého místního APIC. Zpráva je poté odeslána přes sběrnici APIC cílovému místnímu APIC, který svému CPU vydá příslušné přerušení.

Mnoho uniprocesorových systémů aktuálně obsahuje čip I / O APIC, který lze konfigurovat dvěma způsoby:

1. Jako standardní 8259A PIC propojený s CPU. Místní APIC je deaktivován a dva řádky LINT0 a LINT1 jsou konfigurovány jako piny INTR a NMI.

2. Jako standardní externí I / O APIC. Místní APIC je povolen a všechna externí přerušení jsou přijímána prostřednictvím I / O APIC.

  • Alieva Elena Viktorovna, student
  • Ufa State Aviation Technical University
  • REGULÁTOR PŘERUŠENÍ
  • OVLADAČ
  • PŘERUŠENÍ HARDWARU
  • PŘERUŠIT

Přerušení znamená dočasné přerušení hlavního výpočetního procesu za účelem provedení některých plánovaných nebo neplánovaných akcí způsobených provozem hardwaru nebo programu. Mechanismus přerušení je podporován na hardwarové úrovni. K přerušení hardwaru dochází jako reakce mikroprocesoru na fyzický signál z některého zařízení (klávesnice, systémové hodiny, klávesnice, HDD atd.), tato přerušení jsou asynchronní podle času výskytu, tj. se vyskytují v náhodných časech. Řadič přerušení je navržen tak, aby zpracovával a rozhodoval o příchozích požadavcích na služby centrální procesorová jednotka z periferních zařízení. Přerušení mají určitou prioritu, což umožňuje řadiči přerušení dávat přednost tento momentčas na jedno zařízení, na jiné ne. V moderním počítači existuje až 16 externích a periferních zařízení, která generují přerušení.

  • Automatizace toku dokumentů ve skladu výrobního podniku
  • Volání-technologie, funkce, aplikace a efektivita
  • Vývoj modelu informačního systému právního oddělení pro podporu a uzavírání smluv podniku

Úvod

Přerušení znamená dočasné přerušení hlavního výpočetního procesu za účelem provedení některých plánovaných nebo neplánovaných akcí způsobených provozem hardwaru nebo programu. Tito. je to proces, který dočasně přepne mikroprocesor ke spuštění jiného programu a poté se vrátí k přerušenému programu. Stisknutím klávesy na klávesnici zahájíme okamžité volání programu, který klíč rozpozná, vloží jeho kód do vyrovnávací paměti klávesnice, ze které je načten jiným programem. Tito. mikroprocesor na chvíli přeruší provádění aktuální program a přepne na obslužný program přerušení, takzvaný obslužný program přerušení. Poté, co obsluha přerušení dokončí svou práci, přerušený program obnoví provádění od bodu, kde byl pozastaven. Adresa obsluhy přerušení se vypočítá z tabulky vektorů přerušení.

Mechanismus přerušení je podporován na hardwarové úrovni. V závislosti na zdroji jsou přerušení rozdělena na:

  • Hardware- vznikají jako reakce mikroprocesoru na fyzický signál z nějakého zařízení (klávesnice, systémové hodiny, klávesnice, pevný disk atd.), tato přerušení jsou v čase výskytu asynchronní, tj. vyskytovat se v náhodných časech;
  • programatický- jsou uměle vyvolávány pomocí odpovídajícího příkazu z programu (int), jsou určeny k provádění některých akcí operačního systému, jsou synchronní;
  • výjimky- jsou reakcí mikroprocesoru na nestandardní situaci, která nastala uvnitř mikroprocesoru během provádění určitého příkazu programu (dělení nulou, přerušení příznakem TF (trasování)).

Přerušte hardware systému

Systém přerušení je soubor softwaru a hardwaru, který implementuje mechanismus přerušení.

Hardware přerušení systému zahrnuje:

  • výstupy mikroprocesoru - generují se na nich signály, které upozorňují mikroprocesor buď na to, že nějaké externí zařízení „žádá o pozornost“ (INTR), nebo že je nutné urgentní zpracování nějaké události nebo katastrofické chyby (NMI)
  • INTR - pin pro vstupní signál požadavku na přerušení,
  • NMI - pin pro nemaskovatelný vstupní signál přerušení
  • INTA - výstup pro výstupní signál potvrzení přijetí signálu přerušení mikroprocesorem (tento signál je přiveden na stejnojmenný vstup mikroobvodu regulátoru 8259A;
  • 8259A programovatelný řadič přerušení (určený k opravě signálů přerušení z osmi různých externích zařízení; je vyroben ve formě mikroobvodu; obvykle se používají dva sériově zapojené mikroobvody, takže počet možné zdroje externí přerušení až 15 plus jedno nemaskovatelné přerušení; je to on, kdo tvoří číslo vektoru přerušení a vydává jeho datovou sběrnici);
  • externí zařízení (časovač, klávesnice, magnetické disky atd.)

Přerušení manipulace

Přerušení spustí řadu událostí, ke kterým dochází jak v hardwaru, tak software... Na obr. 1 ukazuje typický sled těchto událostí.

Po dokončení I / O zařízení dojde k následujícímu:

  • Zařízení odešle signál o přerušení procesoru.
  • Před odpovědí na přerušení musí procesor dokončit provedení aktuálního příkazu (viz obr. 1).
  • Procesor zkontroluje přítomnost přerušení, detekuje jej a odešle zařízení, které toto přerušení odeslalo, přičemž upozorní na signál úspěšného příjmu. Tento signál umožňuje zařízení vymazat signál přerušení.
Obrázek 1. Časování programu: Pomalé I / O

Nyní se procesor musí připravit na přenos řízení do obsluhy přerušení. Nejprve musíte uložit všechny důležitá informace, abyste se později mohli vrátit na místo aktuálního programu, kde byl pozastaven. Minimální požadovanou informací je stavové slovo programu a adresa dalšího provedeného příkazu, který je umístěn v čítači programu. Tato data jsou vložena do zásobníku řízení systému.

Obrázek 2. Ovládání jednoduchého přerušení

Dále se do čítače programu procesoru načte adresa vstupu obsluhy přerušení, která je zodpovědná za zpracování tohoto přerušení. V závislosti na architektuře počítače a zařízení operačního systému může existovat buď jeden program pro zpracování všech přerušení, nebo může existovat samostatný zpracovávací program pro každé zařízení a každý typ přerušení. Pokud je k dispozici více programů pro zpracování přerušení, musí procesor určit, který zavolá. Tyto informace mohou být obsaženy v původním signálu přerušení; v opačném případě, aby procesor získal potřebné informace, musí postupně vyslýchat všechna zařízení, aby určil, které odeslalo přerušení.

Jakmile je do čítače programu načtena nová hodnota, procesor pokračuje do dalšího cyklu instrukcí a začíná ji načítat z paměti. Protože je příkaz načten z umístění, jehož počet je určen obsahem čítače programu, řízení přejde do rutiny přerušení. Provedení tohoto programu zahrnuje následující operace.

Obsah čítače programu a stavové slovo přerušovaného programu jsou již uloženy v systémovém zásobníku. To však nejsou všechny informace týkající se stavu spustitelného programu. Například je třeba uložit obsah registrů procesoru, protože tyto registry mohou být požadovány obsluhou přerušení. Proto je nutné uložit všechny informace o stavu programu. Obsluha přerušení obvykle začíná zapsáním obsahu všech registrů do zásobníku. Další informace, které by měly být uchovávány, jsou popsány v kapitole 3, „Popis a kontrola procesů“. Na obr. je ukázán jednoduchý příklad, ve kterém je uživatelský program přerušen po provedení instrukce z buňky N. Obsah všech registrů, stejně jako adresa další instrukce (N + 1), celkem, tvořící M slova, jsou tlačeny na hromádku. Ukazatel zásobníku se poté aktualizuje tak, aby ukazoval na nový vrchol zásobníku. Aktualizuje se také čítač programu, aby indikoval začátek rutiny přerušení.

Obsluha přerušení může nyní začít pracovat. Zpracování přerušení zahrnuje kontrolu informací o stavu souvisejících s I / O operacemi nebo jinými událostmi, které vyvolaly přerušení. To může také zahrnovat odesílání dalších pokynů nebo zpráv s upozorněním na I / O zařízení.

Po dokončení zpracování přerušení se ze zásobníku vysunou dříve uložené hodnoty, které se opět vloží do registrů, čímž se obnoví stav, ve kterém byly před přerušením.

Posledním krokem je obnovení stavového slova programu a obsahu čítače programu ze zásobníku. V důsledku toho bude příkaz přerušeného programu proveden dále.

Vzhledem k tomu, že přerušení není podprogram volaný z programu, je důležité pro úplné zotavení zachovat všechny informace o stavu přerušeného programu. Přerušení však může nastat kdykoli a kdekoli v uživatelském programu. Tato událost je nepředvídatelná.

Ovladač přerušení

Řadič přerušení je navržen tak, aby zpracovával a rozhodoval příchozí požadavky na služby do centrálního procesoru z periferních zařízení. Analogicky lze funkci ovladače přerušení přirovnat k tajemníkovi nějakého šéfa. Tajemník musí rozhodnout, který z návštěvníků bude přijat jako první šéf a kdo později, na základě priorit daných šéfem a stavu návštěvníka samotného. Podobně v počítačovém systému je možné, že několik periferních zařízení vysílá signál přerušení nebo požadavek na přerušení. V počítačové literatuře je tento signál označován jako IRQ (Interrupt Request).

Jak bylo uvedeno výše, přerušení má určitou prioritu, což umožňuje řadičům přerušení dávat v daném čase přednost jednomu zařízení, a nikoli jinému. V moderním počítači existuje až 16 externích a příslušenství generování přerušení. Tato zařízení jsou:
–IRQ 0, systémový časovač; –IRQ 1, klávesnice; –IRQ 2, používané k dotazování zařízení připojených v kaskádě; –IRQ 8, hodiny reálného času; –IRQ 9, vyhrazeno; –IRQ 10, vyhrazeno; –IRQ 11, vyhrazeno; –IRQ 12, ps / 2 - myš; –IRQ 13, koprocesor; –IRQ 14, řadič pevného disku; –IRQ 15, vyhrazeno; –IRQ 3, porty COM2, COM4; –IRQ 4, porty COM1, COM3; –IRQ 5, port LPT2; –IRQ 6, řadič disketové mechaniky; –IRQ 7, port LPT1, tiskárna.

Zde jsou signály uvedeny v sestupném pořadí podle priority. Můžete vidět, že po IRQ 2, následovaném IRQ 8. Faktem je, že v jednom okamžiku řadič přerušení sestával ze dvou mikroobvodů, jeden byl připojen k druhému. Tento druhý mikroobvod je připojen k lince IRQ 2 a tvoří kaskádu. Obsluhuje linky IRQ8 - IRQ 15. A poté následují čáry prvního mikroobvodu.

Přerušte provoz ovladače

Přerušit ovladače považovány za čipové Intel 8259A, které byly použity v dnes již velmi starých počítačích s procesory až do řady 386. Tyto počítače měly obvykle 2 kaskády 8259A zapojené kaskádově, tedy jeden k druhému. Jedním z mikroobvodů připojených přes linku požadavku na přerušení přímo k procesoru je master nebo master. Zbytek, připojený k pánovi prostřednictvím podobných kolíků, se nazývá otroci.


Obrázek 3. Schéma zapojení řadičů přerušení a jejich interakce s centrálním procesorem

Obrázek 3 ukazuje schéma připojení řadičů přerušení a jejich interakci s centrálním procesorem. Přerušovací signály z periferních zařízení nebo podřízených ovladačů jsou odesílány na vstupy IR0 - IR7 hlavního ovladače. Interní logika hlavního řadiče zpracovává příchozí požadavky z hlediska priority. Pokud je priorita požadavku zařízení dostatečná, pak výstup INT ovladače vygeneruje signál na vstup INTR procesoru. V opačném případě je žádost zablokována.

Pokud procesor umožňuje přerušení, pak po dokončení provádění aktuálního příkazu generuje sekvenci signálů na lince INTA, díky které je podřízený ovladač imunní vůči příchozím novým požadavkům na přerušení a navíc informace z vnitřních registrů ovladače je vyveden do datové linky z vnitřních registrů řadiče, pomocí kterých procesor rozpoznává typ přerušení.

Procesor přenáší oprávnění k přerušení do řadiče přerušení přes řadič sběrnice. Signál RD je určen pro řadič přerušení, aby umístil obsah interních registrů na datovou sběrnici. Na signálu WR naopak řadič přerušení přijímá data ze stejnojmenné sběrnice a zapisuje je do vnitřních registrů. V důsledku toho to ovlivňuje provozní režim řadiče přerušení.

Vstup CS je připojen k adresové sběrnici a tento signál je použit k identifikaci konkrétního řadiče přerušení. Vstup A0 ukazuje na port řadiče přerušení v I / O prostoru.

Vstupy IR0 - IR7 jsou navrženy tak, aby přijímaly požadavky na přerušení od periferních zařízení a podřízených ovladačů.

Výstupy CAS0 - CAS2 jsou určeny k identifikaci konkrétního podřízeného ovladače.

Článek pojednává o přerušení hardwaru a zařízení, funkce, činnost řadiče přerušení. Tento ovladač v prvních počítačích kompatibilních s PC se objevila přerušení. Od té doby se jak procesory, tak samotný počítač hodně změnily, i když některé body zůstaly. Aby to bylo jasnější, byla zvážena organizace řadiče přerušení 8295A.

Výše uvedený diagram ukazuje signály přicházející nejen do podřízených a hlavních řadičů přerušení, ale také do ostatních podřízených. Váš počítač nebo notebook však ve skutečnosti má 2 řadiče přerušení, jak je uvedeno výše: hlavní a podřízený. Můžete si ale vytvořit vlastní počítačové systémy tedy pomocí až 64 podřízených řadičů přerušení.

V moderních počítačích po dlouhou dobu přerušit funkce ovladače neprovádějí ji mikroobvody 8259A, ale jižní most. U všech programů a zařízení však zůstává vše při starém. Řadič přerušení je navíc programovatelný a k interním registrům a portům je nutné přistupovat stejným způsobem jako k řadiči 8259A.

Závěr

V tomto příspěvku byla uvažována přerušení, a to hardwarové zpracování přerušení a princip zpracování přerušení. Uvažovány jsou také regulátory přerušení a princip jejich činnosti.

Přerušení znamená dočasné přerušení hlavního výpočetního procesu za účelem provedení některých plánovaných nebo neplánovaných akcí způsobených provozem hardwaru nebo programu. Mechanismus přerušení je podporován na hardwarové úrovni. Přerušení hardwaru vzniká jako reakce mikroprocesoru na fyzický signál ze zařízení (klávesnice, systémové hodiny, klávesnice, pevný disk atd.); Tato přerušení jsou asynchronní v době výskytu, tj. se vyskytují v náhodných časech.

Ovladač přerušení navrženy tak, aby zpracovávaly a rozhodovaly příchozí požadavky na služby do centrálního procesoru z periferních zařízení. Přerušení mají určitou prioritu, což umožňuje ovladač přerušení dát v daném čase přednost jednomu zařízení před jiným. V moderním počítači existuje až 16 externích a periferních zařízení, která generují přerušení.

Bibliografie

  1. Přednáška. Přerušení. E-mailem Zdroje. http://hromatron.narod.ru/_lekcii/prerivania_lekcia_g2013.htm
  2. Přerušení systému | Přerušení hardwaru | Zpracování přerušení http://life-prog.ru/view_os.php?id=16
  3. Ovladač přerušení. E-mailem Zdroj http://sdelaycomputersam.ru/Controller_irq.php,
  4. Přerušení. Ovladač přerušení. Zařízení, funkce, práce. E-mailem Zdroj http://sdelaycomputersam.ru/Controller_irq.php
  5. Struktura a inicializace E-zdroje řadiče přerušení Intel 8259A https://dev64.wordpress.com/2012/05/30/8259-programming/
Je dobré, když se po montáži nebo plánované modernizaci počítač poprvé spustí a funguje stabilně a bez závad. Mnohem horší je, pokud dojde k neočekávaným problémům - spontánní restartování a zamrzání, zhroucení programu, nefunkčnost nebo „neviditelnost“ zařízení atd. Prvním důvodem, který vám v tomto případě obvykle přijde na mysl, je konflikt přerušení. Známe dobře povahu tohoto jevu, jsme dostatečně připraveni s ním bojovat?

Co je IRQ
Přerušení jsou základním mechanismem reakce systému na vznikající události. Hardwarová přerušení, obvykle nazývaná IRQ (Interrupt ReQuest), jsou fyzické signály, pomocí kterého řadič zařízení informuje procesor o potřebě zpracovat nějaký požadavek. Schéma zpracování přerušení obvykle vypadá takto:
1) procesor obdrží signál přerušení a jeho číslo;
2) speciální tabulka slouží k nalezení adresy programu odpovědného za zpracování přerušení s daným číslem - obsluha přerušení;
3) procesor se pozastaví aktuální zaměstnání a přepne se na provedení obslužné rutiny (v obecném případě je to nějaký druh ovladače);
4) řidič získá přístup k zařízení a zkontroluje příčinu přerušení;
5) jsou spuštěny požadované akce - inicializace, konfigurace zařízení, výměna dat atd.
6) ovladač skončí a procesor se vrátí k přerušenému úkolu.
Aby mechanismus přerušení fungoval správně, musí být zjevně splněny dvě podmínky: za prvé musí signál požadavku dosáhnout procesoru a za druhé ovladač ovladače musí na tento signál správně reagovat. V případě konfliktu není splněna druhá podmínka: dorazí signál přerušení, ale reakce na něj se ukáže jako nesprávná, v důsledku čehož máme (v lepším případě) nefunkční zařízení.

Konflikt
Můžeme říci, že konflikt je situace, ve které se několik objektů současně pokouší získat přístup ke zdroji, který je určen pouze pro jeden z nich. Ke konfliktu přerušení dochází, když více zařízení používá stejnou linku přerušení k odeslání signálu požadavku a neexistuje žádný mechanismus pro zpracování souběžných požadavků. Pokud ovladač, který dostává kontrolu, nefunguje se zařízením, které odeslalo požadavek, pak buď dojde k chybě, nebo jedno ze zařízení jednoduše nefunguje.
Nabízí se otázka: může několik zařízení používat stejnou přerušovací linku, nebo je to v zásadě nemožné? Koneckonců, pokud je řidič schopen určit, od koho přesně požadavek přišel, pak bude reagovat na signály pouze ze „svého“ zařízení, přičemž ignoruje všechny ostatní. To ale musí být předem nějak dohodnuto, jinak je konflikt nevyhnutelný.
Místní sběrnice PCI byla navržena s ohledem na sdílení přerušení. Každé zařízení PCI musí správně fungovat na stejné linii přerušení s ostatními zařízeními PCI. To se provádí následujícím způsobem: skutečnost o přítomnosti signálu na přerušovací lince není určena hranou, tj. změnu úrovně napětí, ale samotnou skutečností přítomnosti určitého napětí. Několik zařízení může změnit napětí v síti najednou a stát se tak, jakoby, ve frontě na služby.
Sdílení stejného IRQ mezi více zařízeními PCI tedy není podle definice konfliktem. Někdy však nastanou problémy. Za prvé, ne všechna zařízení PCI pracují správně na stejné lince přerušení s ostatními. Za druhé, někdy mají řidiči chyby, kvůli kterým nemohou správně určit zdroj signálu, což narušuje ostatní ovladače. Za třetí, ne všechna zařízení fungují na sběrnici PCI; například zařízení ISA, která zahrnují například řadiče portů COM / LPT, nemohou sdílet přerušení s ostatními. Abyste měli jasno v tom, jak se můžete vyhnout konfliktům nebo je vyřešit, musíte pochopit, jak jsou IRQ spravovány.

Organizace přerušení hardwaru v osobním počítači
Jak víš, osobní počítače začalo s počítačem IBM. Jeho architektura zahrnovala osm linek hardwarového přerušení (IRQ), které byly ovládány speciálním ovladačem. Každému z nich bylo přiřazeno číslo, které určovalo prioritu přerušení a adresu jeho obsluhy (takzvaný vektor přerušení). Nová architektura, IBM PC AT, poskytla dalších osm přerušovacích linek, pro které byl použit druhý řadič, připojený k jedné z přerušovacích linek prvního řadiče. Tato architektura byla bohužel poslední poté, co IBM ztratila schopnost řídit vývoj platformy, kterou vytvořila, takže všechny moderní počítače mají stále jen šestnáct přerušení, z nichž jedno používá druhý řadič.
Počítač IBM PC AT měl pouze jednu sběrnici, přes kterou mohly zařízení komunikovat s procesorem a pamětí - ISA. Většina linek přerušení byla přiřazena standardním zařízením ISA, zbytek byl vyhrazen pro budoucnost. Když přišla tato budoucnost, bylo jasné, že nová univerzální autobus PCI dostalo pouze čtyři bezplatná přerušení. Proto byl vynalezen chytrý mechanismus pro sdílení přerušení (IRQ Sharing) a dynamické předefinování čísel (IRQ Steering nebo Mapping).
Podstata mechanismu řízení přerušení zařízení PCI je následující. Obecně existují čtyři fyzické přerušovací linky PCI s názvem PIRQ0, PIRQ1, PIRQ2 a PIRQ3. Jsou připojeny k řadiči přerušení. Zdá se, že každé zařízení PCI má čtyři konektory, nazývané INT A, INT B, INT C a INT D. Linky můžete ke konektorům připojit v libovolném pořadí. Například pro první slot PCI můžete vytvořit následující zapojení: PIRQ0 - INT A, PIRQ1 - INT B, PIRQ2 - INT C, PIRQ3 - INT D. A pro druhý - jiným způsobem: PIRQ0 - INT B , PIRQ1 - INT C, PIRQ2 - INT D, PIRQ3 - INT A. Obvykle zařízení vyžaduje pouze jednu přerušovací linku připojenou k INT A. Při instalaci do prvního slotu zařízení používá linku PIRQ0 a druhý slot bude mít Linka PIRQ1 na stejném pinu. Zařízení v různých slotech tedy budou používat různé linky fyzického přerušení. Hardwarový konflikt mezi nimi bude odstraněn.
Sběrnice AGP, která je ve skutečnosti specializovanou modifikací PCI, také používá jednu z linek PIRQ - obvykle PIRQ0.
U moderních systémů čtyři řádky nestačí, takže nové čipové sady často používají osm linek PIRQ, které jsou stejným způsobem připojeny v různých kombinacích k slotům PCI a zařízením zabudovaným v desce.
K řadiči přerušení jsou připojeny linky PIRQ. Stejně jako ostatní řádky jsou jim přiřazena logická čísla IRQ. Pokud je na stejné fyzické lince více zařízení (a to je přípustné), pak všechna budou mít stejné číslo IRQ. Pokud jsou zařízení na různých fyzických linkách, mohou stále přijímat stejná čísla IRQ. Běžné ovladače jim umožní volný běh bez obětování výkonu, protože sběrnici PCI stále může zachytit pouze jedno zařízení. Hlavní věcí je rozpoznat, ze kterého zařízení signál přišel.
Čísla linek PIRQ jsou přidělována automaticky díky notoricky známému mechanismu Plug & Play. Existují ale také zařízení ISA Plug & Play. Mají také možnost automaticky získat číslo IRQ. Jejich linka přerušení ale patří výhradně jim, a pokud jedna z linek PIRQ získá stejné číslo, dojde k neřešitelnému konfliktu.
Zjistili jsme tedy, že zařízení PCI by neměla mít problémy s konflikty IRQ. Pokud samozřejmě fungují správně, a není tomu tak vždy. Ovladače navíc musí podporovat mechanismus sdílení přerušení. Zařízení ISA nevědí, jak sdílet linky přerušení, a proto jsou provokatéři konfliktů. V důsledku toho je problém eliminace konfliktů redukován na správné přidělování čísel (zdrojem problémů jsou zařízení ISA a „křivé“ ovladače) nebo na oddělení po různých fyzických linkách („křivé“ řadiče PCI).
Podívejme se, jak jsou čísla v systému přidělována a jak můžeme tento proces ovlivnit.

Přerušit mapu
Jak jsem řekl, většina čísel IRQ je již obsazena standardními zařízeními, nebo spíše přiřazena k jejich přerušovacím linkám. Pojďme si projít objednávku:
0 - systémový časovač (číslo je vždy obsazeno);
1 - klávesnice (číslo je vždy obsazeno);
2 - sekundový řadič přerušení (vždy zaneprázdněn);
3 - port COM2 (lze deaktivovat a číslo lze uvolnit);
4 - port COM1 (lze deaktivovat a číslo lze uvolnit);
5 - port LPT2 (obvykle je číslo volné);
6 - řadič diskety (lze deaktivovat a uvolnit číslo);
7 - port LPT1 (pokud není v režimu EPP nebo ECP, pak je číslo volné);
8 - hodiny reálného času (vždy obsazeno);
9 - zdarma;
10 - zdarma;
11 - zdarma;
12 - myš PS / 2 (může být zdarma, pokud taková myš neexistuje);
13 - koprocesor (vždy zaneprázdněn);
14 a 15 - ovladač pevné disky(lze deaktivovat a číslo se uvolní).
V typickém systému jsou k dispozici čísla 5, 7, 9–11, tedy pět z patnácti. Kromě toho můžete bezpečně deaktivovat porty COM2 a LPT1, čímž se počet volných čísel zvýší na sedm. Zdarma neznamená, že nejsou zaneprázdněni, jen je mezi nimi možné volné míchání.
Každý systém má tři standardní zařízení PCI - ACPI, řadiče USB a grafickou kartu, z nichž každé bude mít jedno číslo. Složité zařízení (např. zvuková karta) může vyžadovat několik řádků - INT A, INT B atd. pro jejich součásti, které nebudou v rozporu mezi sebou (koneckonců různé fyzické linky), ale s jinými zařízeními - snadno.
Jak jsou čísla přerušení aktuálně přidělována, můžete zjistit několika způsoby. Na úplném začátku spuštění počítače se zobrazí textová konfigurační tabulka. Hned za ním je seznam zařízení PCI s přiřazeným číslem IRQ (viz snímek obrazovky). Další způsob funguje na Windows 9x. Na ovládacím panelu je ikona „Systém“ a ve volaném apletu záložka „Zařízení“. Vybereme vlastnosti zařízení „Počítač“ a všechna zařízení tam budou uvedena s uvedením jejich IRQ (viz snímek obrazovky).
Ve Windows 2000 nemáme přístup ke správě přerušení, takže pro zobrazení seznamu IRQ musíme použít standardní informační nástroj (Ovládací panely / Nástroje pro správu / Správa počítače / Informace o systému / Zdroje hardwaru).

Přidělení BIOS IRQ
V systému jsou čísla IRQ alokována mezi fyzické linky dvakrát. Poprvé to provádí systém BIOS při spuštění. Každému zařízení Plug & Play (všechna PCI, moderní ISA, integrovaná zařízení), respektive jeho přerušení, je přiřazeno jedno z deseti možných čísel. Pokud není k dispozici dostatek čísel, získá několik řádků jeden společný. Pokud se jedná o linky PIRQ, je to v pořádku - za přítomnosti normálních ovladačů a podpory operačního systému (viz níže), vše bude fungovat. A pokud několik zařízení ISA nebo zařízení PCI a ISA získá stejné číslo, pak je konflikt jednoduše nevyhnutelný a pak je nutné zasáhnout do distribučního procesu.
Nejprve je třeba deaktivovat všechna nepoužívaná zařízení ISA (v systémech bez slotů ISA jsou také k dispozici) - porty COM1, COM2 a disketovou mechaniku. Můžete také deaktivovat režimy EPP a ECP portu LPT, poté bude k dispozici přerušení IRQ7.
PROTI Nastavení BIOSu potřebujeme sekci „Konfigurace PCI / PNP“. Přidělení čísel IRQ lze ovlivnit dvěma základními způsoby: zablokovat konkrétní číslo a přímo přiřadit číslo řádku PIRQ.
První metoda je k dispozici pro všechny systémy BIOS: vyhledejte seznam položek „IRQ x používá:“ (v nový BIOS skryté v podnabídce „Zdroje IRQ“). Tato přerušení, která by měla být přiřazena výhradně zařízením ISA, by měla být nastavena na „Legacy ISA“. Při přiřazování čísel zařízením PCI se tedy tato přerušení přeskočí. To by mělo být provedeno, pokud zařízení ISA přetrvává v jednom přerušení se zařízením PCI, a proto obojí nefunguje. Poté najdeme číslo tohoto IRQ a zablokujeme jej v nastavení BIOSu. Zařízení PCI jde do nové číslo IRQ, ale zařízení ISA zůstává. Konflikt vyřešen.
Druhým, pohodlnějším způsobem ovládání čísel IRQ je přímé přiřazení. Ve stejné podnabídce Nastavení systému BIOS mohou existovat položky ve tvaru „Slot X use IRQ“ (další názvy: „PIRQx use IRQ“, „PCI Slot x priority“, „INT Pin x IRQ“).
S jejich pomocí může být každé ze čtyř linek PIRQ přiřazeno konkrétní číslo. Mimochodem, v novém AwardBIOS 6.00 můžete vidět, která zařízení (včetně vestavěných) používají konkrétní linku. Jen se podívejte pravá strana Obrazovka nastavení BIOSu: fotografie ukazuje, jak jsem najel kurzorem na položku „Slot 1/5 použít IRQ č.“, A vpravo se objevil nápis „Display Contr.“. To znamená, že grafická karta používá první řádek PIRQ. Pokud nyní místo „Auto“ zadám jakékoli konkrétní číslo, grafická karta se přepne na toto přerušení.

Přidělení čísel IRQ Nástroje Windows
Podruhé jsou přidělena čísla přerušení operační systém... Jak ukazují moje experimenty, Windows „98 začíná zasahovat do akcí prováděných BIOSem“ ohm pouze v extrémních případech. Pokud máte normální BIOS, zde popsané techniky nejsou potřeba.
Je třeba poznamenat, že správný provoz mechanismů sdílení a dynamického přidělování IRQ vyžaduje, aby systém Windows rozpoznal čipovou sadu. základní deska a stáhl si miniport IRQ. Čím novější verzi Windows má, tím více čipových sad podporuje vlastní miniport (PCIIMP.PCI). Vždy je však nejlepší hrát bezpečně a nainstalovat nejnovější ovladače čipové sady.
Ve Windows 98 je systém přidělování IRQ řízen pomocí standardního správce zařízení. V seznamu systémová zařízení musíte najít sběrnici PCI. V jeho vlastnostech je speciální karta (viz screenshot). Pokud je vše správně nakonfigurováno, bude tam uveden miniport („úspěšně načteno“) a ovládací prvek Sběrnice PCI(Řízení) bude povoleno. Systém Windows "98 má tedy prostředky k řízení přidělování čísel přerušení mezi fyzické linky. Ale protože se s tím BIOS dobře vyrovnává, tento mechanismus není zapojen."
Ale někdy je to prostě nutné. Jak jsem již řekl, zařízení PCI by neměla být v konfliktu, pokud používají stejné logické přerušení. Další věcí jsou zařízení ISA, která také obsahují porty COM a LPT. Pokud zařízení není vybaveno technologií Plug & Play, systém BIOS si toho nemusí všimnout tím, že přeruší činnost zařízení PCI. Poté si musíte rezervovat přerušení. To se provádí v dispečeru Zařízení Windows„98: vyberte zařízení„ Počítač “, vyvolejte jeho vlastnosti, přepněte na druhou kartu. Poté je vše jasné.
Kromě redundance můžete přímo nastavit číslo přerušení pro zařízení. Chcete -li to provést, musíte v jeho vlastnostech najít kartu "Zdroje", zakázat automatické ladění a zkuste změnit přiřazené číslo přerušení.
Bohužel to nefunguje vždy.
Windows 2000 je speciální systém. Pokud máte moderní počítač pak pravděpodobně podporuje konfigurační rozhraní ACPI. V tomto případě Windows 2000 bude akce systému BIOS úplně ignorovat a „zablokuje“ všechna zařízení PCI na jedno logické přerušení. Obecně to bude fungovat dobře (pokud neexistuje ISA), ale někdy se vyskytnou problémy. Abyste mohli měnit čísla přerušení, musíte buď změnit jádro HAL, nebo přeinstalovat Windows 2000 s deaktivovaným ACPI v BIOSu. Výměna jádra se provádí následovně: ve správci zařízení vyberte „Počítač“ / „Počítač s ACPI“, změňte ovladač na „ Standardní počítač", restartujte. Pokud to nefunguje, budete muset znovu nainstalovat Windows 2000.
Doufám, že vám výše uvedené informace pomohou v boji proti závadám na hardwaru. A pamatujte si: většina problémů, které vznikají, souvisí nízká úroveň počítačová gramotnost hostitel počítače. Proto musíte vždy usilovat o sebevzdělávání, pak bude méně problémů a ty, které vzniknou, se nebudou zdát neřešitelné.

Pravděpodobně nejčastější konflikt přerušení (IRQ) je spojen s moderním sériovým portem COM2 základní desky, a interní modem (což znamená plnohodnotný interní PC modem, nikoli softwarový modem, nazývaný také WinModem). Faktem je, že plnohodnotný interní modem již má podporu pro určitý port; standardně je tento port přiřazen COM2, přičemž systém obvykle povoluje i druhý sériový port. Systém má tedy dva identické porty využívající stejné zdroje (přerušení a adresy portů I / O).

Řešení tohoto problému je celkem jednoduché: vstupte do nastavení systému BIOS a deaktivujte vestavěný port COM2. Kromě toho můžete zvážit deaktivaci portu COM1, který se také používá jen zřídka. Zakázání nepoužívaných portů COMx je jedním z lepší způsoby uvolnit přerušení (IRQ) pro jiná zařízení.

Další běžný konflikt také zahrnuje sériové porty. Ve standardní tabulce mapování přerušení jste si možná všimli, že IRQ3 je přiřazen COM2 a IRQ4 je přiřazen COM1. Problém nastává, když jsou do systému přidány další porty COM3 a / nebo COM4 a volná přerušení jim není přiřazena ručně (ve výchozím nastavení používají stejné IRQ3 a IRQ4).

Další komplikace přináší fakt, že některé portové karty neumožňují výběr jiného přerušení než IRQ3 a IRQ4. V důsledku toho přiřazení IRQ3 ke COM4 a IRQ4 ke COM3 vede ke konfliktu s COM1 a COM2, které také používají tato přerušení: dva porty nemohou současně používat stejný řídicí kanál přerušení. Při práci v DOSu to bylo povoleno, protože v něm bylo možné provádět pouze jeden úkol najednou, ale ve Windows a OS / 2 je to zcela nemožné. Aby bylo možné v počítači používat více než dva paralelní porty COM, je zapotřebí víceportová deska, která kromě přerušení číslovaných 3 a 4 umožňuje použití dalších přerušení. Sdílení přerušení je v zásadě přijatelné pro zařízení, která normálně nefungují současně (nebo nepřetržitě). Porty nespadají do této kategorie zařízení. Je možné použít přerušení pro skener a modem společně, avšak v tomto případě, pokud jsou použity současně, dojde ke konfliktu. Naštěstí většina zařízení, která dříve používala porty (například myši, tiskárny štítků a externí modemy) nyní připojte k portům USB, takže jsou problémy s potřebou podporovat více portů. moderní uživatelé počítače by se neměly zobrazovat.

Pokud stále potřebujete použít více sériových portů, nejlepší řešení bude nákup karty s více porty, která buď poskytuje možnost nastavit nekonfliktní přerušení, nebo obsahuje vlastní procesor, který umožňuje rozdělení jednoho přerušení systému mezi několik portů. Některé starší karty s více porty měly rozhraní ISA, ale dnes byly nahrazeny kartami PCI, které také nabízejí výkonnostní výhody.

Pokud některá zařízení uvedená v tabulce chybí (například vestavěný port myši (IRQ12) nebo druhý paralelní port (IRQ5)), lze jejich přerušení považovat za dostupná. Například druhý paralelní port je extrémně vzácný, takže přiřazené přerušení IRQ5 se nejčastěji používá pro kartu zvukového adaptéru. Podobně se přerušení IRQ15 používá pro sekundární řadič IDE. Pokud v systému nejsou k sekundárnímu kanálu IDE připojena žádná disková zařízení, můžete tento řadič v systému BIOS deaktivovat, čímž uvolníte další přerušení pro jiná zařízení.

Je třeba poznamenat, že nejjednodušší způsob, jak zkontrolovat nastavení přerušení, je ve Správci zařízení Windows. V systému Windows 95b je program HWDIAG a v systému Windows 98 a novější novější verze- Informace o systému konzoly. Tyto nástroje vám umožňují získat podrobnou zprávu o využití zdrojů v systému a také nainstalované ovladače zařízení a položky registru Windows pro každé zařízení. PROTI Windows systémy U systémů XP a Vista poskytuje systémové informace program Msinfo32.

Chcete -li zajistit nejvyšší možný počet sdílených přerušení v moderním systému bez konektorů ISA, použijte v systému BIOS následující kroky.

  1. Zakažte všechny nepoužívané porty v systému BIOS. Například pokud se místo sériových a paralelních portů používají USB porty, deaktivujte je. Díky tomu lze uvolnit až tři přerušení.
  2. Zadejte přerušení IRQ vydané v kroku 1 v seznamu dostupných přerušení pro zařízení PCI / PnP. Záleží na Verze systému BIOS odpovídající parametry jsou k dispozici v sekci Vyloučení zdrojů PnP / PCI nebo Konfigurace PnP / PCI.
  3. Aktivací možnosti Obnovit konfigurační data vymažete směrovací tabulky IRQ v paměti CMOS.
  4. Uložte změny a ukončete program nastavení systému BIOS.

Je dobré, když se po montáži nebo plánované modernizaci počítač poprvé spustí a funguje stabilně a bez závad. Mnohem horší je, pokud dojde k neočekávaným problémům - spontánní restartování a zamrzání, zhroucení programu, nefunkčnost nebo „neviditelnost“ zařízení atd. Prvním důvodem, který vám v tomto případě obvykle přijde na mysl, je konflikt přerušení. Známe dobře povahu tohoto jevu, jsme dostatečně připraveni s ním bojovat?

Co je IRQ


Přerušení jsou základním mechanismem reakce systému na vznikající události. Hardwarová přerušení, obvykle nazývaná IRQ (Interrupt ReQuest), jsou fyzické signály používané řadičem zařízení k informování procesoru o zpracování nějakého požadavku. Schéma zpracování přerušení obvykle vypadá takto:
1) procesor obdrží signál přerušení a jeho číslo;
2) speciální tabulka slouží k nalezení adresy programu odpovědného za zpracování přerušení s daným číslem - obsluha přerušení;
3) procesor pozastaví aktuální práci a přepne na provedení obslužné rutiny (v obecném případě jde o nějaký druh ovladače);
4) řidič získá přístup k zařízení a zkontroluje příčinu přerušení;
5) jsou spuštěny požadované akce - inicializace, konfigurace zařízení, výměna dat atd.
6) ovladač skončí a procesor se vrátí k přerušenému úkolu.
Je zřejmé, že pro správnou činnost mechanismu přerušení musí být splněny dvě podmínky: za prvé musí signál požadavku dosáhnout procesoru a za druhé ovladač ovladače musí na tento signál správně reagovat. V případě konfliktu není splněna druhá podmínka: dorazí signál přerušení, ale reakce na něj se ukáže jako nesprávná, v důsledku čehož máme (v lepším případě) nefunkční zařízení.

Konflikt

Můžeme říci, že konflikt je situace, ve které se několik objektů současně pokouší získat přístup ke zdroji, který je určen pouze pro jeden z nich. Spor o přerušení nastává, když více zařízení používá stejnou linku přerušení k odeslání signálu požadavku a neexistuje žádný mechanismus pro zpracování souběžných požadavků. Pokud ovladač, který dostává kontrolu, nefunguje se zařízením, které odeslalo požadavek, pak buď dojde k chybě, nebo jedno ze zařízení jednoduše nefunguje.
Nabízí se otázka: může několik zařízení používat stejnou přerušovací linku, nebo je to v zásadě nemožné? Koneckonců, pokud je řidič schopen určit, od koho přesně požadavek přišel, pak bude reagovat na signály pouze ze „svého“ zařízení, přičemž ignoruje všechny ostatní. To ale musí být předem nějak stanoveno, jinak je konflikt nevyhnutelný.
Místní sběrnice PCI byla navržena s ohledem na sdílení přerušení. Každé zařízení PCI musí správně fungovat na stejné linii přerušení s ostatními zařízeními PCI. To se provádí následujícím způsobem: skutečnost o přítomnosti signálu na přerušovací lince není určena hranou, tj. změnu úrovně napětí, ale samotnou skutečností přítomnosti určitého napětí. Několik zařízení může změnit napětí v síti najednou a stát se tak, jakoby, ve frontě na služby.
Sdílení stejného IRQ mezi více zařízeními PCI tedy není podle definice konfliktem. Někdy však nastanou problémy. Za prvé, ne všechna zařízení PCI pracují správně na stejné lince přerušení s ostatními. Za druhé, někdy mají řidiči chyby, kvůli kterým nemohou správně určit zdroj signálu, což narušuje ostatní ovladače. Za třetí, ne všechna zařízení fungují na sběrnici PCI; například zařízení ISA, která zahrnují například řadiče portů COM / LPT, nemohou sdílet přerušení s ostatními. Abyste měli jasno v tom, jak se vyhnout konfliktům nebo je řešit, musíte pochopit, jak jsou IRQ spravovány.

Organizace přerušení hardwaru v osobním počítači


Jak víte, osobní počítače začaly s IBM PC. Jeho architektura zahrnovala osm linek hardwarového přerušení (IRQ), které byly ovládány speciálním ovladačem. Každému z nich bylo přiřazeno číslo, které určovalo prioritu přerušení a adresu jeho obsluhy (takzvaný vektor přerušení). Nová architektura, IBM PC AT, poskytla dalších osm přerušovacích linek, pro které byl použit druhý řadič, připojený k jedné z přerušovacích linek prvního řadiče. Tato architektura byla bohužel poslední poté, co IBM ztratila schopnost řídit vývoj platformy, kterou vytvořila, takže všechny moderní počítače mají stále jen šestnáct přerušení, z nichž jedno používá druhý řadič.
Počítač IBM PC AT měl pouze jednu sběrnici, přes kterou mohly zařízení komunikovat s procesorem a pamětí - ISA. Většina linek přerušení byla přiřazena standardním zařízením ISA, zbytek byl vyhrazen pro budoucnost. Když přišla ta budoucnost, ukázalo se, že nová univerzální sběrnice PCI dostala pouze čtyři volná přerušení. Proto byl vynalezen chytrý mechanismus pro sdílení přerušení (IRQ Sharing) a dynamické předefinování čísel (IRQ Steering nebo Mapping).
Podstata mechanismu řízení přerušení zařízení PCI je následující. Obecně existují čtyři fyzické přerušovací linky PCI s názvem PIRQ0, PIRQ1, PIRQ2 a PIRQ3. Jsou připojeny k řadiči přerušení. Zdá se, že každé zařízení PCI má čtyři konektory, nazývané INT A, INT B, INT C a INT D. Linky můžete ke konektorům připojit v libovolném pořadí. Například pro první slot PCI můžete vytvořit následující zapojení: PIRQ0 - INT A, PIRQ1 - INT B, PIRQ2 - INT C, PIRQ3 - INT D. A pro druhý - jiným způsobem: PIRQ0 - INT B , PIRQ1 - INT C, PIRQ2 - INT D, PIRQ3 - INT A. Obvykle zařízení vyžaduje pouze jednu přerušovací linku připojenou k INT A. Při instalaci do prvního slotu zařízení používá linku PIRQ0 a druhý slot bude mít Linka PIRQ1 na stejném pinu. Zařízení v různých slotech tedy budou používat různé linky fyzického přerušení. Hardwarový konflikt mezi nimi bude odstraněn.
Sběrnice AGP, která je ve skutečnosti specializovanou modifikací PCI, také používá jednu z linek PIRQ - obvykle PIRQ0.
U moderních systémů čtyři řádky nestačí, takže nové čipové sady často používají osm linek PIRQ, které jsou stejným způsobem připojeny v různých kombinacích k slotům PCI a zařízením zabudovaným v desce.
K řadiči přerušení jsou připojeny linky PIRQ. Stejně jako ostatní řádky jsou jim přiřazena logická čísla IRQ. Pokud je na stejné fyzické lince více zařízení (a to je přípustné), pak všechna budou mít stejné číslo IRQ. Pokud jsou zařízení na různých fyzických linkách, mohou stále přijímat stejná čísla IRQ. Běžné ovladače jim umožní volný běh bez obětování výkonu, protože sběrnici PCI stále může zachytit pouze jedno zařízení. Hlavní věcí je rozpoznat, ze kterého zařízení signál přišel.
Čísla linek PIRQ jsou přidělována automaticky díky notoricky známému mechanismu Plug & Play. Existují ale také zařízení ISA Plug & Play. Mají také možnost automaticky získat číslo IRQ. Ale jejich linka přerušení patří výhradně jim, a pokud jedna z linek PIRQ získá stejné číslo, dojde k nerozpustnému konfliktu.
Zjistili jsme tedy, že zařízení PCI by neměla mít problémy s konflikty IRQ. Pokud samozřejmě fungují správně, a není tomu tak vždy. Ovladače navíc musí podporovat mechanismus sdílení přerušení. Zařízení ISA nevědí, jak sdílet linky přerušení, a proto jsou provokatéři konfliktů. Problém eliminace konfliktů tedy spočívá ve správném přidělování čísel (zdrojem problémů jsou zařízení ISA a „křivé“ ovladače) nebo v oddělení po různých fyzických linkách („křivé“ řadiče PCI).
Podívejme se, jak jsou čísla v systému přidělována a jak můžeme tento proces ovlivnit.

Přerušit mapu

Jak jsem řekl, většina čísel IRQ je již převzata standardními zařízeními, nebo spíše přiřazena k jejich přerušovacím linkám. Pojďme si projít objednávku:
0 - systémový časovač (číslo je vždy obsazeno);
1 - klávesnice (číslo je vždy obsazeno);
2 - sekundový řadič přerušení (vždy zaneprázdněn);
3 - port COM2 (lze deaktivovat a číslo lze uvolnit);
4 - port COM1 (lze deaktivovat a číslo lze uvolnit);
5 - port LPT2 (obvykle je číslo volné);
6 - řadič diskety (lze deaktivovat a uvolnit číslo);
7 - port LPT1 (pokud není v režimu EPP nebo ECP, pak je číslo volné);
8 - hodiny reálného času (vždy obsazeno);
9 - zdarma;
10 - zdarma;
11 - zdarma;
12 - myš PS / 2 (může být zdarma, pokud taková myš neexistuje);
13 - koprocesor (vždy zaneprázdněn);
14 a 15 - řadič pevného disku (lze deaktivovat a uvolnit číslo).
V typickém systému jsou k dispozici čísla 5, 7, 9–11, tedy pět z patnácti. Kromě toho můžete bezpečně deaktivovat porty COM2 a LPT1, čímž se počet volných čísel zvýší na sedm. Zdarma neznamená, že nejsou zaneprázdněni, jen je mezi nimi možné volné míchání.
Každý systém má tři standardní zařízení PCI - ACPI, řadiče USB a grafickou kartu, z nichž každé bude mít jedno číslo. Složité zařízení (například zvuková karta) může vyžadovat několik řádků - INT A, INT B atd. pro jejich součásti, které nebudou v rozporu mezi sebou (koneckonců různé fyzické linky), ale s jinými zařízeními - snadno.
Jak jsou čísla přerušení aktuálně přidělována, můžete zjistit několika způsoby. Na úplném začátku spuštění počítače se zobrazí textová konfigurační tabulka. Hned za ním je seznam zařízení PCI s přiřazeným číslem IRQ (viz snímek obrazovky). Další způsob funguje na Windows 9x. Na ovládacím panelu je ikona „Systém“ a ve volaném apletu záložka „Zařízení“. Vybereme vlastnosti zařízení „Počítač“ a všechna zařízení tam budou uvedena s uvedením jejich IRQ (viz snímek obrazovky).
Ve Windows 2000 nemáme přístup ke správě přerušení, takže pro zobrazení seznamu IRQ musíme použít standardní informační nástroj (Ovládací panely / Nástroje pro správu / Správa počítače / Informace o systému / Zdroje hardwaru).

Přidělení BIOS IRQ

V systému jsou čísla IRQ alokována mezi fyzické linky dvakrát. Poprvé to provádí systém BIOS při spuštění systému. Každému zařízení Plug & Play (všechna PCI, moderní ISA, integrovaná zařízení), respektive jeho přerušení, je přiřazeno jedno z deseti možných čísel. Pokud není k dispozici dostatek čísel, získá několik řádků jeden společný. Pokud se jedná o linky PIRQ, je to v pořádku - za přítomnosti normálních ovladačů a podpory operačního systému (viz níže), vše bude fungovat. A pokud několik zařízení ISA nebo zařízení PCI a ISA získá stejné číslo, pak je konflikt jednoduše nevyhnutelný a pak je nutné zasáhnout do distribučního procesu.
Nejprve je třeba deaktivovat všechna nepoužívaná zařízení ISA (v systémech bez slotů ISA jsou také k dispozici) - porty COM1, COM2 a disketovou mechaniku. Můžete také deaktivovat režimy EPP a ECP portu LPT, poté bude k dispozici přerušení IRQ7.
V nastavení BIOSu potřebujeme sekci „Konfigurace PCI / PNP“. Přidělení čísel IRQ lze ovlivnit dvěma základními způsoby: zablokovat konkrétní číslo a přímo přiřadit číslo řádku PIRQ.
První metoda je dostupná pro všechny BIOSy: najděte seznam položek „IRQ x used by:“ (v novém BIOSu je skrytý v podnabídce „IRQ Resources“). Tato přerušení, která by měla být přiřazena výhradně zařízením ISA, by měla být nastavena na „Legacy ISA“. Při přiřazování čísel zařízením PCI se tedy tato přerušení přeskočí. To by mělo být provedeno, pokud zařízení ISA přetrvává v jednom přerušení se zařízením PCI, kvůli kterému obě nefungují. Poté najdeme číslo tohoto IRQ a zablokujeme jej v nastavení BIOSu. Zařízení PCI se přesune na nové číslo IRQ, ale zařízení ISA zůstane. Konflikt vyřešen.
Druhým, pohodlnějším způsobem ovládání čísel IRQ je přímé přiřazení. Ve stejné podnabídce Nastavení systému BIOS mohou existovat položky ve tvaru „Slot X use IRQ“ (další názvy: „PIRQx use IRQ“, „PCI Slot x priority“, „INT Pin x IRQ“).
S jejich pomocí může být každé ze čtyř linek PIRQ přiřazeno konkrétní číslo. Mimochodem, v novém AwardBIOS 6.00 můžete vidět, která zařízení (včetně vestavěných) používají konkrétní linku. Stačí se podívat na pravou stranu obrazovky nastavení BIOSu: na fotografii je vidět, jak jsem najel kurzorem na položku „Slot 1/5 použít IRQ č.“, A vpravo se objevila slova „Display Contr.“ To znamená, že grafická karta používá první řádek PIRQ. Pokud nyní místo „Auto“ zadám jakékoli konkrétní číslo, grafická karta se přepne na toto přerušení.

Přidělení IRQ pomocí systému Windows

Podruhé jsou čísla přerušení přidělena operačním systémem. Jak ukazují moje experimenty, Windows „98 začíná zasahovat do akcí prováděných BIOSem“ ohm pouze v extrémních případech. Pokud máte normální BIOS, zde popsané techniky nejsou potřeba.
Je třeba poznamenat, že pro správné fungování mechanismů sdílení a dynamického přidělování IRQ musí systém Windows rozpoznat čipovou sadu základní desky a načíst miniport IRQ. Čím novější verzi Windows má, tím více čipových sad podporuje vlastní miniport (PCIIMP.PCI). Vždy je však nejlepší hrát bezpečně a nainstalovat nejnovější ovladače čipové sady.
Ve Windows 98 je systém přidělování IRQ řízen standardním správcem zařízení. Najděte sběrnici PCI v seznamu systémových zařízení. V jeho vlastnostech je speciální karta (viz screenshot). Pokud je vše správně nakonfigurováno, bude tam uveden miniport („úspěšně načteno“) a bude povolena správa sběrnice PCI (řízení). Windows „98 má tedy prostředky k řízení distribuce čísel přerušení mezi fyzické linky. Protože se s tím ale BIOS často dobře vyrovnává, tento mechanismus není zapojen.
Ale někdy je to prostě nutné. Jak jsem již řekl, zařízení PCI by neměla být v konfliktu, pokud používají stejné logické přerušení. Další věcí jsou zařízení ISA, která také obsahují porty COM a LPT. Pokud zařízení není vybaveno technologií Plug & Play, systém BIOS si toho nemusí všimnout tím, že přeruší činnost zařízení PCI. Poté si musíte rezervovat přerušení. To se provádí ve Správci zařízení Windows 98: vyberte Počítačové zařízení, zavolejte jeho vlastnosti, přepněte na druhou kartu.
Kromě redundance můžete přímo nastavit číslo přerušení pro zařízení. Chcete -li to provést, musíte v jeho vlastnostech najít kartu „Zdroje“, deaktivovat automatickou konfiguraci a zkusit změnit přiřazené číslo přerušení.
Bohužel to nefunguje vždy.
Windows 2000 je speciální systém. Pokud máte moderní počítač, pravděpodobně podporuje konfigurační rozhraní ACPI. V tomto případě Windows 2000 bude akce systému BIOS úplně ignorovat a „zablokuje“ všechna zařízení PCI na jedno logické přerušení. Obecně to bude fungovat dobře (pokud neexistuje ISA), ale někdy se vyskytnou problémy. Abyste mohli měnit čísla přerušení, musíte buď změnit jádro HAL, nebo přeinstalovat Windows 2000 s deaktivovaným ACPI v BIOSu. Výměna jádra se provádí následovně: ve správci zařízení vyberte „Počítač“ / „Počítač s ACPI“, změňte ovladač na „Standardní počítač“, restartujte počítač. Pokud to nepomůže, budete muset znovu nainstalovat Windows 2000.
Doufám, že vám výše uvedené informace pomohou v boji proti závadám na hardwaru. A pamatujte si: většina problémů, které vznikají, je spojena s nízkou úrovní počítačové gramotnosti majitele počítače. Proto musíte vždy usilovat o sebevzdělávání, pak bude méně problémů a ty, které vzniknou, se nebudou zdát neřešitelné.