sistem de întrerupere
Întrerupere (întrerupere în limba engleză.) - semnalul care spune procesorul de apariția oricărui eveniment. În acest caz, executarea secventa de comanda curentă este suspendată și se trece la programul de procesare de întrerupere, care răspunde la un eveniment și să-l slujească, și apoi revine la controlul codului întrerupt.
Astfel, sistemul de întreruperi permite o utilizare mai eficientă a procesorului prin eliberarea-l din funcțiile de urmărire a perifericelor ușor pentru a face schimb de date. În funcție de sursa de apariție a semnalului de întrerupere este împărțit în:
# 9472; asincron sau extern (hardware) - evenimentele care provin din surse externe (de exemplu, dispozitive periferice), și pot apărea în orice moment arbitrar: semnalul de la timer-ul, placa de rețea, sau o unitate de disc, interfața de tastatură, mișcarea mouse-ului;
# 9472; software-ul (un caz special de întrerupere internă) - declanșată de executarea unei instrucțiuni speciale în codul de program. Software-ul întrerupe sunt, de obicei folosit pentru a desemna funcțiile software-ului încorporat (firmware), drivere de dispozitiv și sistemul de operare.
întrerupere de control în timpul unei scheme de transmisie poate fi afișată după cum urmează.
1. admitere întrerupe dispozitiv de identificare a produs care a solicitat;
2. Informațiile sunt stocate pe starea procesorului;
3. inițializare executate pentru programul de procesor de execuție de procesare întrerupere;
4. este lansat și executarea programului de procesare de întrerupere;
5. recuperarea de stat procesorului și reia programul întrerupt.
Procesul de salvare a stării actuale la momentul întreruperii și restaurare ulterioară numit comutare context. Sub starea procesorului se înțelege un contor (pointer) instrucțiuni și conținutul tuturor registrelor acestuia la momentul întreruperii.
Acest circuit este simplificat, deoarece nu ia în considerare posibilitatea de a simultane producerii întreruperii multiple sau întrerupere în procesarea următoare.
Există mai multe clasificări de întreruperi.
În funcție de posibilitățile de interdicție întreruperi externe sunt împărțite în:
# 9472; mascat - întrerupe că procesorul execută fie imediat, fie ignora. DACĂ manierele procesor de pavilion reglementat în steaguri înregistrare 0 - interzis 1 - Permis (în unele procesoare, împreună cu posibilitatea de mascare comune este furnizat software-ul de mascare întrerupe anumite tipuri, adică procesorul poate, în anumite momente dezactivați întrerupe de dispozitive și de lucru secundar numai cu un număr de mare);
# 9472; demascat (în engleză Non Maskable întrerupere, NMI.) - procesate întotdeauna, indiferent de interdicțiile de alte întreruperi. De exemplu, semnalele de această eroare.
Pentru întrerupe maskable și non-maskable folosesc de obicei diferite semnale de intrare și intrările corespunzătoare acestora. Prioritatea întrerupere demascat este întotdeauna mai mare.
Când primiți o întrerupere a estimat prioritatea sa. În cazul în care prioritatea unui program de funcționare este mai mare decât cea a întreruperii, procesarea întrerupere va fi amânată până la sfârșitul programului (program executabil poate procesa o altă întrerupere). De asemenea, în cazul în care primiți mai multe procesare de întrerupere simultană ar trebui să fie trimise la întrerupere, cu cea mai mare prioritate. Astfel, este necesar să se ia în considerare mai detaliat problema priorității de evaluare întrerupere.
Prioritati poate fi fix sau dinamic acordabile.
Cel mai simplu mod de a stabili o prioritate fixă este selectabil de linii de semnal cereri de dezvoltator care unesc ordinul de a întrerupe intrările de sistem. Cererile se sunt înregistrate în registrul cererilor de întrerupere în biți strict definite. Într-o prioritate fixă atunci când sistemele de selectare pentru verificări ale motorului de procesare de interogare (software sau hardware) întrerupe registru de stare. Căutare sursă cerere de întrerupere este oprită până la detectarea cea mai semnificativă descărcarea de gestiune registru unic de întrerupere. Prioritate pentru a deservi cererea este determinată de locul său în lanțul de serie. Mai multe dispozitiv periferic rapid atribuit în mod obișnuit cu prioritate mai mare. În astfel de sisteme, prioritatea dispozitivului este fixat rigid și poate fi modificat numai printr-o nouă solicitare de conectare la liniile de întrerupere ale intrărilor de sistem.
În sistemele cu un mod dinamic tunabile cele mai noi priorități de software pot fi realocate, iar metoda cea mai utilizate pe scară largă este inelară (circulară) prioritate. În sistemele cu prioritate de întrerupere alegere inelară pentru tratament este, de asemenea, efectuată pe rezultatele de votare secventiala registrul de întrerupere. Cu toate acestea, acest studiu începe cu un studiu al dispozitivului, următoarea prioritate pentru nou la service. După verificarea ultimului registru cerere de întrerupere este interogat de descărcare în urma registru cifre semnificative. prioritate Ring rațional fixe. Dacă există întreruperi frecvente interogări împiedică cereri bloc din perifericelor la prioritate scăzută și nu permite periferice rapidă monopoliza școală pentru a pune în aplicare propriile lor schimburi.
O funcție importantă a unei prelucrări de control prioritate este organizarea cererii de întrerupere a ajunge la un moment în care întreruperea este deservită cererea anterioară. Se face deosebirea între un singur nivel de sistem și de întrerupere pe mai multe niveluri. Serviciul de un singur nivel al unui nou întrerupere este posibilă după finalizarea prelucrării curente. Prioritate livrare întrerupere în sistem monist este numit uneori prioritatea relativă. Dacă la momentul cererii de servicii astfel de cereri vine cu o prioritate mai mare, întreruperea nu este deservită întreruptă și după selectat cererea cu cea mai mare prioritate din rândul primite. Pentru a caracteriza întrerupe în mai multe niveluri, sisteme utilizează conceptul de prioritate absolută. În astfel de sisteme, solicită o prioritate mai mare poate întrerupe serviciul de întrerupere de curent, cu o prioritate mai mică, adică. E. Interrupt permise.
Ca un exemplu, ia în considerare o organizație de întreruperi în sistemul de microprocesor bazat pe procesorul x86. Întreruperile sunt manipulate într-un astfel de sistem utilizând panoul de control implementat de către Intel 8259A sub forma unei VLSI.
Panoul de comandă asigură izolarea între sursele externe și întreruperile procesorului. Un astfel de sistem este utilizat în HMV diferite arhitecturi. Diagrama arată dispozitivele periferice conectate la liniile de IRQ IRQ sistem (cerere de întrerupere) magistrala ISA. Semnalele de întrerupere de la periferice transmise pe aceste linii sunt aplicate la intrările controler IR PIC. IBM PC- PC-uri compatibile, fiecare dispozitiv periferic este conectat la linia personală IRQ, și să intre într-o cerere de întrerupere periferică expune numai. Dezavantajul unei astfel de organizații este dificultatea de a conecta un număr mare de dispozitive periferice, din cauza numărului limitat de linii de IRQ pentru periferice suplimentare linii libere nu pot fi la fel de bine pentru a conecta mai multe dispozitive periferice la o singură linie IRQ este inacceptabilă. Acest dezavantaj este rezolvată prin conectarea în cascadă a mai multor controlere de întrerupere.
Vector întrerupere - rezervată pentru numărul dispozitivului care identifică handler de întrerupere corespunzătoare. Vectorii de întrerupere sunt combinate în tabelul de vectorul de întrerupere (Engl. Interrupt Descriptor Table (IDT)). Amplasarea mesei depinde de tipul și modul de procesor.