Megszakítási típusok

3. Indítsa újra a csapatot

4. Megszakítások feldolgozása személyi számítógépben

5. Mechanizmusok az irányítás átadására a kezelők számára

6. Megszakítási eljárások védelme.

A lekérdezési alternatívát, amelyet szinte minden modern processzorban használnak, a megszakításnak hívják. és a feldolgozó feldolgozási utasításainak logikája komoly bonyodalmakból áll.


A processzor egy vagy több bemenettel rendelkezik, amelyet jelek vagy megszakítások kérésére használnak. Amikor egy jel megjelenik az egyik bemeneten, a processzor várakozik az aktuális parancs végrehajtására, és ahelyett, hogy elindulna a következő parancsra, megszakítja a kezelést.

A megszakítás az aktuális parancs vagy az aktuális parancssorozat végrehajtásának befejezése egy esemény feldolgozásához egy speciális programmal - egy megszakításkezelővel. majd a megszakított program végrehajtásához visszatér. Az eseményt a program végrehajtásakor bekövetkező speciális jelenség vagy külső eszköz által okozott esemény okozhatja. A megszakítás arra szolgál, hogy gyorsan reagáljon a processzorra a program végrehajtása és a külső eszközökkel való interakció során felmerülő különleges helyzetekben. Alapvetően a megszakításokat az I / O eszközök és a processzor időzítők generálják, és engedélyezhetők (engedélyezettek) vagy letiltva (letiltva).

A megszakítási mechanizmust a számítógép megfelelő hardvere és szoftvere biztosítja.

Minden olyan különleges helyzet, amely megszakítást okoz. egy megszakítási kérelem (RF) nevű jel kíséri. A külső eszközökről érkező megszakítási kérelmeket speciális sorokon és kéréseken keresztül továbbítják a processzorhoz. amelyek a program végrehajtása során keletkeznek, közvetlenül a mikroprocesszor belsejéből származnak. Mindkét típus megszakításának mechanizmusa hasonló. Tekintse meg a számítógép működését, amikor megjelenik egy megszakítási kérelem jel. elsősorban a hardveres megszakítások feldolgozására támaszkodva (1.1. ábra).

Megszakítási típusok


Ábra. 1.1. Megszakítás végrehajtása a számítógépben: tp - a processzor reakcióideje a megszakítási kérelemhez; tc - a megszakított program állapotának mentése és a megszakításkezelő hívása; tв - a megszakított program helyreállítási ideje

Miután megjelenik a megszakítási kérelem jelzése, a számítógép a program végrehajtásához - a megszakító kezelőhöz jut. A kezelő elvégzi azokat az intézkedéseket, amelyek az adott helyzethez szükségesek. Például egy ilyen helyzet lehet a billentyűzet a billentyűzeten. Ezután a kezelőnek át kell adnia a nyomógomb kódját a billentyűzet vezérlőről a processzorra, és esetleg elemezheti ezt a kódot. A kezelő végén a vezérlő átkerül a megszakított programba.

A válaszidő a megszakítási kérelem jelének és a megszakítási program kezdetének (a megszakításkezelő) előfordulása közötti idő, ha ez a megszakítás engedélyezve van a karbantartáshoz.

^ A válaszidő attól az időponttól függ, amikor a processzor meghatározza a megszakítási kérelem meglétét. A megszakítási kérelmek lekérdezhetők a parancs következő lépésének végén (például parancs olvasása, első operandus olvasása stb.) Vagy a program minden egyes parancsának befejezése után.

Az első megközelítés gyorsabban reagál, de a megszakított programra vonatkozóan nagy mennyiségű információt kell menteni, beleértve a feldolgozó pufferrekordjainak állapotát, a befejezett szakaszok számát stb., Amikor átadnak a megszakításkezelőnek. Amikor visszatér a kezelőtől, nagy mennyiségű munkát kell végrehajtania a processzor állapotának visszaállításához.

A második esetben a reakcióidő elég nagy lehet. Ha azonban átkapcsol a megszakításkezelőre, akkor emlékezni kell a program minimális környezetére, amely megszakad (általában egy parancspult és egy zászlóregiszter). Jelenleg a számítógépek gyakran használják a megszakítási kérelem felismerését a következő parancs befejezése után.

^ A válaszidőt a legmagasabb prioritási kérelemre határozzák meg.

A megszakítás mélysége a programok maximális száma, amelyek megszakíthatják egymást. A megszakítás mélysége általában egybeesik a prioritási szintek számával. a megszakítási rendszer felismeri. A megszakítási rendszer működése különböző megszakítási mélységekben (n) a 3. ábrán látható. 1.2. Itt feltételezzük, hogy a megszakítási kérelem száma nagyobb.

Megszakítási típusok


Ábra. 1.2. Megszakítja a rendszer működését különböző megszakítási mélységekben

Figyelmen kívül hagyva a reakcióidőt. valamint a tárolási idő és a helyreállítási idő:

rangsorolása


Amíg a megszakítás feldolgozása befejeződik, általában tilos ilyen típusú megszakítást kezelni, hogy a processzor ne lépjen be a ciklusba egy megszakítás feldolgozásához. A prioritás azt jelenti, hogy minden megszakítási forrás osztályokra van osztva, és minden osztálynak meg kell adnia a saját prioritási szintjét a megszakítási kérelemhez. A prioritásokat relatív és abszolút módon lehet kiszolgálni. A relatív megszakítás szolgáltatás azt jelenti, hogy ha a megszakítás feldolgozása során magasabb prioritású megszakítás történik, akkor ez a megszakítás (magasabb prioritás) csak az aktuális megszakítási szolgáltatás rutin befejezése után fog feldolgozni. Abszolút megszakítási szolgáltatás azt jelenti, hogy ha a megszakítás feldolgozása során magasabb prioritású megszakítás történik, az aktuális megszakítási szolgáltatás rutin ki van kényszerítve, és a processzor elkezdi feldolgozni az újonnan fogadott magasabb prioritású megszakítást. Miután ez az eljárás befejeződött, a processzor visszatér a megelőző megszakítási rutinhoz.

Megszakítás megszakítás - a megszakításkezelőt állítsa sajátra.

A megszakítások hardverekre és szoftverekre oszthatók.

A hardveres megszakítások a számítógépes rendszer hardverfolyamatai által okozott megszakítások. Az ilyen megszakítás forrása lehet maga a mikroprocesszor (nem maga a program, hanem maga a mikroprocesszor). A külső eszközökkel való interakció megszervezésére szolgál. A hardveres megszakítások iránti kérelmeket a mikroprocesszor speciális bemenetére küldi. Ezek:

  1. maszkos;

  2. leleplezte; .

Maskable - megszakítások, amelyeket le lehet tiltani a megfelelő bitek beállításával a megfelelő megszakító maszkregiszterben; számítógépes szoftverrel maszkolhatók;

Maszkolható megszakító áttérünk az magas szintre sig-Nala INTR bemenet (Interrupt Request) a engedélyt jelzőbitet (IF = 1). Ebben az esetben a processzor tárolja a zászlók a verem nyilvántartásban dömpingelt Vaeth-IF flag és gyárt két egymást követő (háttal) megszakítás nyugtázás ciklus, amelyben keletkezett ellenőrzési sig-Nala INTA # (Megszakítás nyugtázás). Az INTR jel magas szintjét legalább addig kell tartani, amíg a megszakítást nem ismeri fel. Az üresjárati megszakításvezérlő első nyugtázási ciklusa a második impulzuson keresztül továbbítja a vevő által a hardveres megszakításnak a buszon keresztül történő karbantartását. A vett vektorszámmal történő megszakítást a processzor a programhoz hasonló módon hajtja végre. Feldolgozása az aktuális interrupt viszont meg kell szakítani egy NMI, és ha a felvezető beállítani az IF flag maszkolt, és egyéb hardver megszakítja.

Nemaskiruemye mindig feldolgozott, függetlenül az IF jelző értékétől (Intel processzoroknál), mivel azokat úgy tervezték, hogy reagáljanak a számítógépes rendszer fontos eseményeire.

A nem mágneses megszakításokat az IF jelző állapotától függetlenül az NMI (Non Mascute Interrupt) jelzéssel végzik el. A bemenet magas szintje megszakítja a 2 típusú (vektor) megszakítást, amely ugyanúgy történik, mint a maszkolt. A feldolgozást az NMI bemeneti jel nem tudja megszakítani addig, amíg az IRET parancs végrehajtásra kerül.

A megszakítási kérelemjelek jelenlétének felismerése és a legfontosabb prioritások meghatározása különböző módokon hajtható végre.

Bizonyos megszakításokat a processzor zászlóregiszterének IF és TF zászlói vezérelnek, amelyeket meg kell határoznunk a processzor megszakításának megértéséhez. Ha a megszakítási feltétel teljesül, és a szükséges zászlók vannak beállítva, a processzor végrehajtja a megszakítási sorrendet az aktuális végrehajtható utasítás befejezése után:

1) az FL regiszterek (zászlók), a CS és az IP aktuális értéke szerepel a veremben;

2) az új tartalom (a megszakítási eljárás címe) az IP és a CS regiszterbe kerül, amelyet a megszakítás típusa határoz meg és kivonásra kerül a megszakítási típus által meghatározott előre definiált memória cellákból;

A megszakítási sorrend végrehajtásának letiltásához használja az IF jelzőt, amelyet az STI és CLI parancsok vezérelnek. A nulla zászló állapot tiltja (maszkok) megszakad. Az IF jelző minden típusú megszakításra vonatkozik, kivéve a nem maszkolt megszakítást (2-es típus), amelyet az NMI processzor bemenetére alkalmazott jel vált ki.

Végrehajtó processzor megszakítás szekvencia lehet az oka, hogy két oka van: egy szoftver végrehajtását interrupt parancs INT megszakítási vagy bemenetére táplált a processzor INTR majd végrehajtjuk egy speciális processzor buszciklusba az olvasó a megszakítás típusa által továbbított telepített eszköz a INTR jel vonalak nem-D7 . A következő parancsok állnak rendelkezésre a program megszakítási parancsára: INT3, INTO és INT n, ahol n az interrupt típus. A felsorolt ​​parancsok formátumait a függelék tartalmazza. Minden megszakítás eljárás must-végek által a visszatérés a megszakítási parancs IRET, amely helyreállítja a tartalmát az IP regiszterek, CS és FL a veremből.

Ábra. 4.1 Az IDTR regiszter formátuma
A megszakítási táblázat legfeljebb 256 leíró elemet tartalmazhat. Ha megpróbálsz egy olyan megszakításokat kiszolgálni, amelyek meghaladják a táblázat méretét, kivétel #DF dobásra kerül. Kivételeket adtak az első 32 számnak (0 ¸31).
A processzor jelenleg nem használja ezeket a vektorokat; Az ebbe a tartományba tartozó, nem hozzárendelt vektorok a lehetséges jövőbeni használatra vannak fenntartva. A nem hozzárendelt vektorok használata nem szabad.

A maszkolható megszakítások vektorait hardver határozza meg. Külső megszakítás vezérlők (például az INTEL 8259 programozható megszakítás-vezérlő) továbbítjuk a vektor processzor buszon, míg a megszakítás nyugtázás ciklus. Bármilyen vektorok alkalmazhatók tartományban 32 255 valós szám tartományban mód feldolgozásához hardver megszakítások volt: IRQ0¸IRQ7 megszakítások és nem 08h¸0Fh IRQ8¸IRQ15 - 70h¸77h. Annak a ténynek köszönhetően, hogy amint fentebb említettük, az első 32 szám a kivételekre van fenntartva, szükségessé válik a megszakításvezérlő más számokra történő átprogramozása. A vezérlő valós idejű programozásának kezdeti programozását a BIOS kezeli. A védett módban összesen 208 szám van a program megszakításához.
^

Megszakítások feldolgozása személyi számítógépben


Az x86 típusú mikroprocesszorok két bemenettel rendelkeznek a külső hardveres megszakítások kérésére:

  • Az NMI egy nem maszkolható megszakítás. Általában az áramkimaradás megszakítására irányuló kérelmekhez használatos;

  • Az INT egy maszkolható megszakítás. amelynek kérése programozhatóan leplezve az IF jelző zászlóregiszterben történő visszaállításával.

Megszakítási típusok


Ábra. 1.4. A prioritást megszakító vezérlő felépítése

Megszakítási típusok


Ábra. 1.5. A megszakítási vektorok táblázatának szerkezete

A táblázat elemeinek elérése a 8 bites kód szerint történik - a megszakítás típusa (1.1. Táblázat).


Különböző források különböző módon határozzák meg a megszakítás típusát:

  • a szoftver megszakítja a processzoron belüli bevitelét, vagy tartalmazza azt az INT n parancsszámban;

  • A hardveres maszkos megszakítások az adatbuszon keresztül fecskendezik be az elsőbbségi megszakító vezérlőből;

  • A megszakíthatatlan hardveres megszakítást a 2-es típushoz rendelik.

Mechanizmusok a vezérlés átadásához a kezelők megszakításához.
A megszakítási leíró táblázat (IDT) átjárókat tartalmaz (4.2. Ábra).

Ábra. 4.2 IDT átjáró formátum
A hozzáférési bájt "TYPE" mezője határozza meg az átjáró típusát:


  • 4 - átjáró hívás 80286 (Call Gate);

  • 5 - feladatátjáró 80286 (Feladat Kapu);

  • 6 - a 80286 átjáró megszakítása (megszakítási kapu);

  • 7 - 80286 csapda átjáró (Trap Gate);

  • C - hívás átjáró 386 (Call Gate);

  • D - feladat-átjáró 386 (Feladat Kapu);

  • E - megszakítás 386 kapu (Megszakítási kapu);

  • F - csapdapálya 386 (Trap Gate).

Kapcsolódó cikkek