Koncept přerušení
Přerušení označuje CPU, které dočasně přeruší běžící program kvůli externím/vnitřním náhodným událostem nebo událostem předem uspořádaným programem, když CPU běží program normálně. Přejděte na program, který obsluhuje externí/interní události nebo předem domluvené události. Po dokončení služby se vraťte a pokračujte v provádění dočasně přerušeného programu.
Například, když uživatel používá klávesnici, je při každém stisku klávesy vyslán signál přerušení, který informuje CPU, že došlo k události „vstup z klávesnice“, a CPU musí přečíst hodnotu klíče klíč a CPU dočasně pozastaví to, co je po ruce. Program je přenesen do čteného programu, který zpracovává hodnotu klíče. Po dokončení operace čtení se CPU vrátí k původnímu programu, aby pokračoval v běhu.
Je vidět, že výskyt přerušení má nějaký důvod. Událost, která způsobila přerušení, je zdrojem přerušení. Existují různé zdroje přerušení, takže existuje mnoho typů přerušení. CPU musí poskytovat různá řešení požadavků různých zdrojů přerušení při zpracování událostí přerušení, což vyžaduje obsluhu přerušení (rutina služby přerušení), aby to vyřešila.
Z logiky programu je podstatou přerušení přenos programu. Přerušení poskytují mechanismus pro rychlý přenos operačního prostředí programu. Programový segment, který je obsluhován CPU, se nazývá program pro zpracování přerušení (servisní) a program, který je dočasně přerušen, se nazývá hlavní program (neboli volající program). Přenos programu je zahájen vnitřní událostí nebo vnější událostí mikroprocesoru a proces přerušení zahrnuje dva přenosy, nejprve se hlavní program přenese do programu zpracování přerušení (služby) a poté do hlavního programu po zpracování přerušení. (servisní) program je zpracován. Převod. Mechanismus přepínání přenosu programu způsobený zdrojem přerušení slouží k rychlé změně dráhy běhu programu, což je velmi efektivní pro zpracování některých neočekávaných událostí v reálném čase.
Získání čísla přerušení
Číslo přerušení je kód přiřazený každému zdroji přerušení systémem pro identifikaci a zpracování. Číslo přerušení hraje velmi důležitou roli v procesu zpracování přerušení. V systému přerušení, který přijímá režim vektorového přerušení, jej musí CPU použít k nalezení vstupní adresy obslužné rutiny přerušení a realizaci přenosu programu. Aby bylo možné najít vstupní adresu obslužné rutiny přerušení v tabulce vektorů přerušení, lze z čísla přerušení (n)×4 získat ukazatel, který ukazuje na vektor přerušení (tj. vstupní adresu služby přerušení). rutina) je uložena v tabulce vektorů přerušení a tato adresa je z ní převzata (CS:IP), načte se registr kódového segmentu CS a registr ukazatele instrukce IP a poté se přenese do obslužné rutiny přerušení.
Metoda pro CPU k získání počtu přerušení z různých typů zdrojů přerušení v systému se liší. Číslo přerušení maskovatelného přerušení se získá z řadiče přerušení během cyklu odezvy na přerušení. Číslo přerušení (nula) měkkého přerušení INT nH je přímo dáno instrukcí přerušení. Číslo přerušení nemaskovatelného NMI přerušení a některých speciálních přerušení uvnitř CPU je přednastaveno systémem, například číslo přerušení NMI je 02H, číslo přerušení nepovoleného dělitele je 0H atd.
Použití čísla přerušení
Existuje mnoho zařízení, která musí být připojena k počítači, jako jsou zvukové karty, tiskárny, modemy atd. Tato zařízení si mohou vyměňovat data s CPU prostřednictvím požadavků na přerušení. Když zařízení potřebuje CPU ke zpracování svých dat, může do CPU poslat signál požadavku na přerušení, aby CPU pozastavilo prováděnou práci a pak zpracovalo požadavek na operaci zařízení a poté se vrátilo k původní práci. zpracování je dokončeno. Když zařízení odešle CPU požadavek na přerušení, sdělí CPU, které periferní zařízení potřebuje službu, prostřednictvím hodnoty IRQ, takže každé zařízení zabírá hodnotu IRQ.
V každém počítačovém systému řídí řízení přerušení každého hardwaru v systému čip řadiče přerušení 8259 nebo 8259A (nyní je tento čip většinou integrován do jiných čipů). Existuje 16 skupin IRQ. S výjimkou skupiny IRQ používaných jako mosty existuje ve skutečnosti pouze 15 skupin IRQ, které lze volat hardwarem, a tato IRQ mají svou vlastní výchozí konfiguraci.
Při používání hodnot IRQ musíte pochopit princip, že hodnotu IRQ může používat pouze jedno zařízení, například: Myš obvykle používá IRQ4 (COMl), v tuto chvíli již IRQ4 nelze používat jinými hardwarovými zařízeními Up. Různé verze operačního systému mají různá nastavení IRQ, takže při instalaci nového hardwaru systém často nedokáže automaticky detekovat správné IRQ, které má přiřadit volanému hardwaru, což způsobí, že toto hardwarové zařízení nebo původní Starý hardware nefunguje správně. Ve skutečnosti je to proto, že systém automaticky přiřadí IRQ hardwaru jinému hardwaru, který je stejný jako toto IRQ, takže dochází ke konfliktům a hardware nemůže normálně fungovat. Obecně platí, že pokud se s touto situací setkáte, můžete ji vyřešit ruční úpravou konfigurace IRQ nového a starého hardwaru.