A hardver és szoftver megszakítások
Megszakítás (interrupt) - a jel, ami megmondja a processzor bekövetkezte esetén. Ebben az esetben a végrehajtás a jelenlegi parancssort felfüggesztésre kerül, és vezérlés átkerül egy megszakítás-kezelőre, amely reagál az eseményre, és arra szolgál, és akkor visszaadja a vezérlést a megszakított kódot.
Attól függően, hogy a forrás előfordulása a jel, megszakítások vannak osztva:
- aszinkron. vagy külső (hardver) - az eseményeket, amelyek eredete a külső forrásokból (például perifériális eszközök), és előfordulhat meg bármilyen tetszőleges időpontban: a jelet az időzítő, hálózati kártya, vagy egy lemezmeghajtó, a billentyűzet interfész, az egér mozgását. Az a tény bekövetkeztének ez a megszakítás rendszer kezelni a kéréssel, hogy szakítsa meg (megszakítási kérelem, IRQ);
Hardver megszakítások vannak osztva:
IO megszakítani, azonban megköveteli a komplexitás hardver - sozdaniyasistemy megszakítások.
A szerkezet a prioritás megszakítás-vezérlő formában van
- IRn- megszakításkérelmi vonal a periféria;
- INTR- megszakítás kérés jelet a vezérlő processzor;
- INTA- megerősítő jel vételét a megszakítási kérelmet, a megszakítási kérelmet vektor;
- NMI- kérelmet NMI fix vektora a nem kiszolgált megszakítás vezérlő eszközt (például egy jelet egy hajtóműegység meghibásodása vagy letörési feszültség);
Abban kézhezvételét megszakítás kérés IR (N) a kerületi (PU), a megszakítás-vezérlő küld egy megszakítás (INT) a CPU. A processzor lehetővé teszi a feldolgozó a megszakítási képező #INTA erősítse meg, hogy ezzel a megszakítás-vezérlő, szújáratok az adatbusz egy megszakítási vektort. Vektor meghatározza a kezelési program. megszakítás feldolgozás után történik befejezése az aktuális parancs processzor.
Megszakítás vezérlő képes kezelni megszakítások eszközök engedélyezi vagy letiltja egy részük (a maszkolás), és lehetővé teszi, hogy módosítsa a prioritásokat. a vezérlő processzora üzemmódban vezérli a vezérlő buszon keresztül.
8. (!) Egyszintű megszakítás rendszer. Hardver és szoftver.
A fő hátránya a program-vezérelt input-output nem hatékony felhasználása CPU időgép. Ez főleg töltött várakozási ciklusok változásának input kód támogatásával abszolút bemeneti kikötőkben készenlét készenléti ciklusok, a támogatást a feltételes input-output portok. A több várakozási állapotot nagyon nagy lehet, mert az alacsony arány a legtöbb külső eszközöket.
Teljesen megszünteti várakozási állapotot és a kapcsolódó számítógép idő elveszíti őket teszi IO megszakítani. Portok használja ezt a fajta csere nincs küldő eszköz a kész jelet a mikroprocesszor adatbuszon. Ennek alapján a rendelkezésre álló jelek teszik kéréseket IRQ szolgáltatást.
Működési séma felvétele az ilyen kikötők a mikroprocesszoros rendszer a tanulási mikroprocesszor képviselt ris.4.17. Ez a rendszer végrehajtja az úgynevezett egyszintű vektorozott megszakítás rendszer. Ez magában foglalja a portok 1 ... N, végrehajtási aszinkron input-output a külső része a csere, az elem „VAGY”, a kiemelt kódoló és a bemeneti port a megszakítási vektort.
Tegyük fel, hogy az eredeti állapot, valamennyi kérelmet IRQ1 szolgáltatás ... IRQN egyenlő nulla, azaz nincs. Tegyük fel továbbá, hogy igény van a bemenet port No1 IRQ = 1. Ezt a kérést az elem „VAGY” továbbítják a processzor megszakítás bemenet INT kérelmet. A processzor, a válasz erre a kérésre, hajtsa végre a következő lépéseket:
Ris.4.17.Funktsionalnaya szakítsa vektor diagramja egyszintű rendszer
Ris.4.18.Tipovaya karbantartási program tömbvázlata a megszakítás
Mind a port a rendszer saját kikötői szolgáltatási programokat, hívja az egyik csapat írja RST X. különös változata a restart parancs vektornak nevezzük megfelelő interrupt. A vektort generált elsőbbségi jeladó kérés IRQ1 ... IRQN és kiállítva a adatbusz a jelet. A prioritás jeladó lehetővé teszi számunkra, hogy mind a felkérést kapott különböző kikötőkben megfelelően előre meghatározott prioritás rendszert.
ISR egy egységes vektor rendszer általában épül egy tipikus folyamatábra (ris.4.18).
A használat során a megszakítás kell venni jellemző EI megszakítás engedélyező parancs végrehajtását. Ez nem történt meg az időt az mikroprocesszor, de csak miután a következő parancsot. Esetünkben ez azt jelenti, hogy a megszakítás engedélyezve lesz megint csak azt követően visszatér a fő program.
Az egyszintű rendszer minden megszakításkérésekre közel azonos. Prioritás érinti csak egyidejű kérések érkeznek.
Néha ez sokkal kényelmesebb, hogy egy többszintű megszakítás rendszer, amely kéri a magasabb prioritású megszakíthatja a műveletet a megszakítás feldolgozó programok alacsonyabb prioritású. Vector többszintű megszakítás rendszer útján valósul meg egy speciális LSI - elsőbbségi megszakítás vezérlő.
Meg kell jegyezni, hogy az input-output megszakítás végül is aszinkron transzfer a belső része csere kódokat. A szerepe a hiányzó jel egy aszinkron protokoll (STB) vagy a (ACK) van kialakítva végrehajtja megszakítja vektor rendszer.
9. (!) Multi-level megszakítás rendszer. Hardver és szoftver.
A többszintű rendszerekben, ISR alacsonyabb szintű megszakítás lehet szakítani a rendszeres karbantartás a magasabb szintű megszakítás. Más szóval, a megszakítás módot megvalósítottuk a megszakítás alatt.
A szerkezet a megszakítási vektort táblázat:
Hozzáférés elemei az asztalra végezzük egy 8 bites kódot - típusú megszakítás
Azonban, több vezérlő lehet megszakítani-beleértve A Cheny egymás után. A modern számítógépek (kezdve 286) az egyik (vezető) Interrupt Controller Nepo-sredstvenno csatlakoztatva a processzorhoz, és a második (slave) kimenete csatlakozik egy bemeneti INT IRQ2 mester vezérlő. Összesen 15 megszakítás bemenet nyert IRQ0 az IRQ 15 (IRQ2 nem lehet használni).
Amikor egy jelet, hogy egy megszakítás a vezérlő feldolgozza-Py on INTR-INT vonalak, míg az adatok sorokat a megszakítás-vezérlő, hogy a CPU kap egy megszakítási vektort számot generált hozzáadásával az IRQ nekoto eye bázis szám, amely hozzá van rendelve VIOSom con Troller a boot folyamat (értékek 08h alapértelmezett a vezérlő és szolga 70H). Így például, a megszakítási vektort számát a billentyűzet lesz 08 + 1 = 9h. Merevlemez meghajtó 70H + 6 = 76h.
Megszakítás vezérlő lehetővé teszi, hogy hozzanak átprogramozás módok sorban Lock-baglyok változó megszakítás prioritás változást bázis számok vezérlők. Az ilyen átprogramozás osuschest keresztül történik két byte-os port 20h és 21h. Az alapértelmezett prioritása szerinti számuk IRQ külön vezérlő (IRQ0 - legmagasabb, IRQ7 - legalacsonyabb).
Egy példa a lépcsőzetes két közvetlen memória hozzáférésű vezérlők