CursMS9_2014

26
•1 LilianaDobrica , Sisteme cu Microp rocesoa re 2013-2014 1 Agenda Agenda Car act eri stic i generale ale intrer upe rilor si capcanelor Între rup eri si exce pt ii la 80386DX LilianaDobrica , Sisteme cu Microp rocesoa re 2013-2014 2 Întreruperi Întreruperi Întreru pere a este produs ă de un eveniment exte rn microprocesorului, adesea de o operație de intrare/ieșire sau de expirarea unei perioade de timp. • Efe ctu l întreru pe rii: suspe ndarea ex ecu ției programului aflat în rulare, transfe rarea controlului unei rutine dedicate trat ării întreruperii (interrupt handler - IH). IH are sarcina de a efectua ac țiunile cerute de evenimentul extern care a generat întreruperea.

Transcript of CursMS9_2014

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 1/26

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  1

AgendaAgenda

• Caracteristici generale ale intreruperilorsi capcanelor

• Întreruperi si exceptii la 80386DX

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  2

ÎntreruperiÎntreruperi• Întreruperea este produsă de un eveniment extern microprocesorului,

adesea de o operație de intrare/ieșire sau de expirarea unei perioade detimp.

• Efectul întreruperii:• suspendarea execuției programului aflat în rulare,• transferarea controlului unei rutine dedicate tratării întreruperii

(interrupt handler - IH).

• IH are sarcina de a efectua acțiunile cerute de evenimentul extern care agenerat întreruperea.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 2/26

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  3

Tipuri de întreruperi

• întreruperi vectorizate;

• întreruperi nemascabile;

• întreruperi nevectorizate;

• întreruperi cu relansare.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  4

Întreruperi vectorizate

Întrucât există mai multe surse de întreruperi, selectarea rutinei detratare presupune cunoașterea identității sursei întreruperii. Aceastase realizează prin execuția unui ciclu special, numit ciclu deconfirmare a acceptării cererii de întrerupere (interrupt acknowledgecycle - INTA). Se utilizează magistrala externă a microprocesorului.

Evenimentul care a generat întreruperea determină furnizarea cătreCPU a unui cod de identificare. Acest cod, citit de cătremicroprocesor în ciclul de confirmare a acceptării cererii de

 întrerupere, este utilizat de către CPU ca index al unei tabelepăstrate în memorie.

În general, întreruperile vectorizate sunt mascabile.

Primirea cererilor de întreruperi vectorizate se face printr-un singursemnal fizic, deoarece detaliile privind sursa cererii se obțin princiclul de confirmare a acceptării cererii de întrerupere.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 3/26

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  5

Întreruperi nemascabile

O astfel de cerere de întrerupere suspendă execuția programuluiaflat în rulaj indiferent de funcția executată de acesta.

Exemple tipice de evenimente: tendința de a ieși din parametri i de funcționare normală a sursei

de alimentare; detectarea unor erori în operațiile în conjuncție cu memoria(ex.

erori de paritate). alte defecte majoreale sistemului

Semnalarea unei cereri de întrerupere nemascabilă se face printr-un

semnal de intrare distinct. Nu mai este necesară indicarea surseiunei astfel de întreruperi, întrucât ea se cunoaște.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  6

Întreruperi nevectorizate

Întreruperile nevectorizate se implementează prin același mecanism ca și în cazul întreruperilor nemascabile, adică există linii specializate de intrarepentru semnalarea cererilor.

Spre deosebire de cele nemascabile, întreruperile nevectorizate pot fidezactivate prin program.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 4/26

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  7

Întreruperi cu relansare

Suspendarea execuției unui program se face, de regulă, laterminarea instrucțiunii curente pentru a se reduce la minimumposibil informațiile ce se salvează în conjuncție cu programul

 întrerupt.

Sunt cazuri când întreruperea este declanșată de o situație care împiedică însăși terminarea execuției corecte a unei instrucțiuni, caz în care cererea de întrerupere trebuie servită înainte de terminareainstrucțiunii.

Soluție: proiectarea instrucțiunilor astfel încât să fie posibilă  întotdeauna repornirea execuției lor, indiferent de momentul la care a

survenit întreruperea.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  8

Timpul de latență

Timpul cerut de servirea unei cereri de întrerupere depinde de operațiilenecesare tratării evenimentului extern care a cauzat întreruperea, precumși de întârzierea între activarea cererii și începutul activității rutinei detratare. Această întârziere este o caracteristică a microprocesorului și senumește timp de latență.

Pentru a putea evalua timpul de latență a unui microprocesor trebuieexaminata secvența de operații necesare pentru comutarea de laprogramul întrerupt la rutina de servire a întreruperii.

Operațiile necesare în acest scop sunt: salvarea în stiva a indicatorilor de condiții (continutul registrului

EFLAGS si a IP:CS); execuția ciclului de confirmare a acceptării cererii de întrerupere.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 5/26

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  9

Priorități

• Ordinea de prioritate este, în general, următoarea:• întreruperi cu relansare (intreruperi interne) - ele au prioritatea

maximă, deoarece sunt asociate unor evenimente care nu potaștepta terminarea instrucțiunii curente pentru a fi servite;

• întreruperi nemascabile - întreruperile din această clasă suntprioritare celor vectorizate sau nevectorizate, întrucâtevenimentele care le determină necesită o servire rapidă și

 întreruperile nu pot fi mascate;• întreruperi vectorizate;• întreruperi nevectorizate.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  10

Întreruperi vectorizatePooled vs. Interrupt Controller

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 6/26

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  11

Interfata intreruperilor externe mascabile

• INTR  – cerere de intrerupere : "1" activa.• INTA – confirmare a cererii de intrerupereINTR trebuie dezactivat inaintea terminarii executieirutinei de intrerupere, altfel aceeasi intrerupere poatefi confirmata a doua oara.

• Cand semnalul INTR a fost recunoscut,microprocesorul incepe ciclul de m agistrala INTA

• Sunt generate 2 pulsuri de INTA :• Primul puls semnaleaza circuitului de

intreruperi confirmarea acceptarii cererii si sase pregateasca sa trimita numarul tipului

• Al doilea puls, circuitul de intreruperi pune pemagistrala de date numarul tipului deintrerupere

• READY  – insereaza stari de asteptare in ciclulmagistrala;

• Linii de adresa  -  selecteaza circuitul de intreruperisau registrele interne ale acestuia;

• LOCK : nici un alt circuit nu poate prelua controlulmagistralei sistem pana cand secventa cicluluimagistrala INTA nu s-a terminat.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  12

Circuit programabil pentru intreruperi – 8259A

Semnificatia pinilor

• D0-D7 – linii de date conectate la magistrala de date. Transferacuvintele de comanda, informatii de stare si numarul tipuluiintreruperii

• INT, INTA\  – ofera un mecanism de tip handshake prin carecircuitul trimite microprocesorului o cerere de intrerupere siprimeste confirmarea acceptarii acesteia. Pe durata unui ciclumagistrala INTA, semnalul INTA\ are 2 pulsuri “0” logic prin caresemnaleaza ca:

• a. cererea a fost confirmata;• b. trebuie sa trimita pe magistrala de date numarul

intreruperii active cu cea mai mare prioritate.

• A0 – selectia registrului intern care este accesat in timpuloperatiilor de citire/scriere;

• IR0-IR7 – cereri de intrerupere;

• CAS 0-2 - interfata cascada intr-o configuratiemaster/slave. O configuratie master/slaveextinde de la 8 la maxim 64 numarul liniilor IR.

• SP\/EN\ - (input slave program/ output enable)linie multifunctionala. Ca intrare SP\ trebuie safie “1” pentru master si “0” pentru slave. Dupaprimul INTA circuitul master trimite codul CAS(3 biti) care identifica circuitul slave cu cea maimare prioritate ca sa fie servit. Fiecare slavecompara codul CAS. Cand se potriveste,circutul slave pune pe magist rala de datenumarul intreruperii.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 7/26

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  13

Circuit programabil pentru intreruperi – 8259A

8259A arhitectura interna

• Data Bus Buffer si Read/Write Logic oferaaccesul la registrele interne.

• Interrupt Masking Register (IMR) activeazasau mascheaza cererile de intrerupere..M0-M7 este “1” -mascat, altfel “0” activat.

• Interrupt Request Register (IRR)pastreaza starea curenta a cererilor deintrerupere. Pentru fiecare intrerupere cateun bit. “1” activ ; “0” inactiv.

• Priority Resolver Register – identificaintreruperea cu cea mai mare prioritate pe

baza unei scheme de prioritati stabilita prinsoftware.

• Interrupt Service Register (ISR) pastreazaintreruperea in curs de servire.Intreruperea cu cea mai mare prioritateeste memorata aici in timpul primului pulsINTA\ . Starea acestui registru poate ficitita de catre microprocesor.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  14

Desfășurarea unei secvențe de întrerupere (într-un sistem cu 8086)

1. Una sau mai multe linii IRQ trec în ”1” logic setând bițiicorespunzători în registrul IRR

2. 8259 trimite un semnal INT către CPU3. CPU răspunde cu un puls pe linia de INTA4. La primirea pulsului de INTA biții corespondenți din ISR sunt setați

și cei din IRR resetați5. CPU inițiază un al doilea puls INTA în urma căruia 8259 eliberează 

pe magistrală conținutul lui ISR6. La sfârșitul ciclului magistrală toți biții din ISR sunt resetați

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 8/26

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  15

Conectare în cascadă – 22 niveluri de intreruperi

   M  a

  g   i  s   t  r  a   l  a   d  e   A   d  r  e  s  e   /   D  a   t  e

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  16

Conectarea în cascadă – 22 niveluri de intreruperi

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 9/26

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  17

Programarea lui 8259A

• Programarea circuitului se realizeaza princuvinte de comanda de initializare si deoperare.

• Cuvintele de initializare (ICW1, ICW2, ICW3 siICW4) sunt incarcate in registrele interne alecircuitului intr-o secventa de initializarepredefinita.

• Comenzile de operare permit microprocesoruluisa varieze diferite moduri de operare asociatemodului de baza definit la initializare.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  18

Programarea lui 8259A

• Comenzile se realizeaza prin executia instructiunilorOUT sau MOV.

• Cand adresa asignata circuitului 8259A este pemagistrala de adrese se activeaza pe “0” logicintrarea CS\. Acest semnal activeaza unitatearead/write logic a circuitului si datele de pe linii le D0-D7 sunt scrise in registrul de comanda din blocul

control logic in mod sincron cu semnalul WR\.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 10/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  19

Capcane (Traps)

Capcana (trap) este un mecanism care produceapelarea automată a unei proceduri. Spre deosebirede o întrerupere, capcana este activată, explicit sauimplicit, de către o acțiune efectuata de cătreprogramul aflat în rulaj (“întreruperi” software).

Capcanele sunt utilizate pentru tratarea unor condițiide excepție, adesea anormale, care apar în cursulexistenței unui program, sau pentru activarea unorproceduri speciale, cum ar fi rutine ale sistemului de

operare.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  20

Tipuri de Capcane

a) capcane activate întotdeauna;

b) capcane activate/dezactivate prin program;

c) capcane solicitate explicit prin program.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 11/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  21

a) Capcane activate întotdeauna

Se asociază cu un eveniment de tip eroare, indiferentde operația efectuată de către CPU;

De aceea, nu există mijloace de dezactivare a acestuitip de capcană.

Exemple tipice: tentativa de a executa o instrucțiune inexistentă; tentativa de a executa, dintr-un regim neprivilegiat,

o instrucțiune rezervată regimului privilegiat; capcanele în conjuncție cu gestiunea memoriei

externe.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  22

b) Capcane Activate/Dezactivate Prin Program

Evenimentele care reprezintă sau nu o condiție de excepție sauanormală, în funcție de acțiunile specifice efectuate de către program.

Capcanele pot fi activate (dezactivate) de programul însuși, după cumeste necesar sau nu a detecta aceste situații.

Standardul IEEE 754 prevede ca excepțiile generate de operațiile cunumere cu virgulă mobilă sau de conversie pot genera o capcană numai

 în urma unei activări de către program. Un alt exemplu: capcana utilizată pentru a detecta tentativa de execuție

a unei operații cu operanzi cu virgulă mobilă în absența unitățiiaritmetice dedicate acestor operații. În aceste cazuri capcana sedezactivează când configurația hardware include procesorul matematic.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 12/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  23

c) Capcane Solicitate Explicit Prin Program

Nu se folosesc, în mod obișnuit, pentru detectarea condițiilor anormale,dar reprezintă un mijloc de activare a execuției unor rutine speciale, decele mai multe ori acestea fiind funcții ale sistemului de operare.

Sunt astfel organizate încât sa fie posibilă activarea lor la apariția unorcapcane. Operației îi sunt dedicate instrucțiuni speciale, numite adeseaapeluri de sistem (system-call instructions), dată fiind menirea lorprincipală de activare a rutinelor sistemului de operare.

Când se execută o astfel de instrucțiune se activează capcanacorespunzătoare.

Prin asocierea unui parametru, aceeași instrucțiune poate activacapcane diferite.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  24

Manipularea Capcanelor Acțiunile cerute de manipularea capcanelor sunt similare cu cele

executate la apariția unei întreruperi: se salvează în stiva indicatorii de condiție și contorul

programului (CS:IP). se execută saltul la rutina de tratare a capcanei.

Informația despre rutina de tratare este memorată într-un vector stocat într-o zona de memorie bine precizată; în anumite cazuri capcanele și întreruperile folosesc în comun același vector.

De regulă, rutina de tratare a capcanei se execută la un nivel privilegiat

superior față de cel în care se află programul ce a produs capcana.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 13/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  25

PrioritățiApariția simultană de întreruperi și capcane ridică probleme

legate de selectarea celei căreia să i se acorde atenție.

Ca și întreruperile, capcanele sunt servite, de regulă, laterminarea instrucțiunii curente. Unele capcane (cum este pagefault trap) trebuie servite imediat, întrerupând execuțiainstrucțiunii curente. Ele pot f i considerate similare cu

 întreruperile cu relansare.

Deși fiecare microprocesor are propriile sale reguli de prioritateprivind capcanele, se pot folosi următoarele criterii generale: capcanele cu relansare au priori tatea maximă, ca și întreruperile cu

relansare; celelalte capcane au priorități superioare întreruperilor mascabile,

deoarece ele sunt folosite pentru detectarea erorilor și stărilor anormale,

deci necesită atenție imediată;  întreruperile nemascabile pot întrerupe rutinele de tratare a capcanelor

și a întreruperilor.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  26

Instrumente de Depanare• Depanarea este un proces dificil, care se simplifică prin fragmentarea

programelor în blocuri mai mici, mai ușor de stăpânit. În sprijinuldepanatorului se pot oferi următoarele seturi de instrumente:

a) Execuție pas cu pas;

b) Puncte de suspendare a execuției(breakpoints);

c) Memorarea “traseului” programului (program

trace).

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 14/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  27

a) Execuție Pas cu Pas

• Primul instrument permite rularea programuluiinstrucțiune cu instrucțiune, execuția fiind stopată la sfârșitul fiecărei instrucțiuni.

• Prin examinarea stării CPU și a locațiilor dememorie se poate determina eventuala abatere aprogramului de la comportarea dorită.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  28

b) Puncte de Suspendare a Execuției

(Breakpoints)

• Punctele de suspendare a execuției permitsuspendarea execuției unui program după execuția unei anumite instrucțiuni.

• Permit execuția unor blocuri mai mari de program înainte de suspendarea execuției la un anumit

punct cu scopul testării rezultatelor intermediare.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 15/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  29

Memorarea “Traseului” Programului(Program Trace)

Traseul programului constă într-o înregistrarea tuturor instrucțiunilor executate de programde la ultima suspendare și permite verificareacorectitudinii fluxului de instrucțiuni parcursede program.

Pentru oferirea suportului necesar acestorinstrumente de depanare, toatemicroprocesoarele moderne sunt prevăzute

cu mecanismele hardware pentru trace.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  30

Capcana de TraseuMajoritatea microprocesoarelor sunt prevăzute cu o capcană specială, numită trace trap - capcană de traseu. Ea permite atâtexecuția pas cu pas, cât și realizarea de trasee ale programului.Capcana se activează (dezactivează) prin intermediul unui indicatorde condiție special, accesibil prin program.

Când este activă, capcana de traseu lansează în execuție rutina detratare după ultima instrucțiune executată. Desigur, capcana estedezactivată automat pe durata execuției rutinei de tratare în scopulevitării generării unei bucle infinite.

Rutina de tratare a capcanei de traseu permite programatorului să afișeze un set de informații (starea CPU, locații de memorie) care să 

 înlesnească depanarea programului. Aceeași rutina permitememorarea într-un tampon al traseului a datelor despre instrucțiuneaexecutată.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 16/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  31

Puncte de Suspendare Software a Execuției (1)

• Rularea pas cu pas a programelor este, decele mai multe ori, consumatoare de timp, maiales după ce s-au corectat mari blocuri deprogram.

• Utilitatea punctului de suspendare a execuției(breakpoint): aceasta facilitate permiteinserarea în program a unor "comenzi" desuspendare.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  32

Puncte de Suspendare Software a Execuției (2)

Se selectează instrucțiunile pentru care tentativa CPUde a le executa duce la suspendarea execuțieiprogramului.

Pentru implementare se folosește o instrucțiunecapcană specifică, a cărei lungime este cea minimă permisa pentru o instrucțiune.

Instrucțiunea a cărei execuție ar trebui să suspenderularea programului este stocată într-o zonă specială dememorie și este înlocuită prin instrucțiunea breakpoint.

Când contorul programului indică locația în care se aflainstrucțiunea breakpoint, aceasta este executată, fapt cerezultă în activarea rutinei asociate de tratare.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 17/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  33

Puncte de Suspendare Hardware a Execuției (1)

• Mecanismul de suspendare software a execuțieipermite utilizatorului să întrerupă execuția unuiprogram doar cu ajutorul unei instrucțiuniparticulare.

• Punctul de suspendare hardware a execuției seimplementează cu ajutorul unității de gestiune amemoriei (memory management unit - MMU), careconține registre în care se înscrie adresa dememorie la a cărei adresare trebuie să se suspendeexecuția programului.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  34

Puncte de Suspendare Hardware a Execuției (2)

Când mecanismul de breakpoint este activat, MMU compară fiecare nouaadresă de acces cu conținutul registrelor de breakpoint. La egalitate, MMUemite un semnal capcană, fapt ce permite ca tentativa de acces la locația dememorie al cărei adresă este păstrată în registrele de breakpoint să conducă la suspendarea execuției programuluiși activarea unei rutine adecvate detratare a situației.

Microprocesoarele moderne permit utilizarea de puncte de suspendare aexecuției programului atât software, cat și hardware. Numărul primelor estelimitat doar de dimensiunea zonei de salvare, în timp ce numărul de puncte desuspendare hardware este limitat de numărul de registre breakpoint din MMU.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 18/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  35

Întreruperi si excepţ ii la microprocesoarele INTEL

• Intreruperile si exceptiile sunt evenimente care arata ca o conditie existaundeva in sistem, procesor sau in programul curent in executie si necesitaatentiaprocesorului.

• Intreruperile apar la momente de timp aleatoare in executia unui programca raspuns la semnalele venite de la elemente hardware.

• Elementele hardware din sistem utilizeaza intreruperile sa poatagestiona evenimentele externe procesorului.

• Elementele software pot genera intreruperi prin executia instructiuniiINT n .

• Exceptiile  au loc atunci cand procesorul detecteaza o conditiede eroarein timpul executiei unei instructiuni.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  36

Întreruperi si excepţ ii la microprocesoarele INTEL

• La primirea unei cereri de intrerupere sau la detectarea uneiexceptii:

• Procedura/taskul curent in executie sunt suspendate, iarprocesorul executa rutina de servire a intreruperii sau aexceptiei.

• Cand se termina executia rutinei de servire a intreruperii,procesorul reia executia procedurii/taskului intrerupt.

• Reluarea procedurii intrerupte se realizeaza fara pierdereacontinuitatii programului.

• Se poate intampla ca revenirea dintr-o exceptie sa nu fie posibila

sau ca intreruperea sa cauzeze terminarea executiei programuluicurent.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 19/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  37

Întreruperi si excepţ ii la microprocesoarele INTEL

• Fiecare exceptie definita arhitectural si fiecare conditie deintrerupere cu o tratare speciala a procesorului are asignat un numarunic de identificare numit vector.

• Procesorul utilizeaza vectorul asignat ca index intr-o tabela avectorilorde intreruperi. Numerele asignatevectorilor pot varia de la0 la 255.

• Vectorii de la 0 la 31 sunt rezervati exceptiilor si intreruperilordefinite arhitectural. Nu toti vectorii din acest domeniu au o functiedefinita. Vectorii neasignati unei functii raman rezervati.

• Vectorii de la 32 la 255 sunt pentru intreruperidefinite deutilizator. Aceste intreruperi sunt, in general, asignateechipamentelor I/O, ca sa poata trimite cereri procesorului prinmecanismelehardware de intreruperi externe.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  38

Întreruperi si excepţ ii la microprocesoarele INTELSurse ale intreruperilor 

• Intreruperi externe (generate hardware). Intreruperi hardwaremascabile ce pot fi trimise prin pinul INT. Daca flagul IF alregistrului EFLAGS permite, toate intreruperile hardwaremascabile pot fi mascate in grup.

• Intreruperi generate-software. Instructiunea INT n permitegenerarea de intreruperi din program prin specificarea numaruluivectorului ca operand.

• Exemplu: INT 32 apeleaza rutina intreruperii 32.• Daca in instructiune se specifica numarul 2 (numarul

vectorului pentru NMI) se apeleaza rutina pentru intreruperea

NMI, dar nu se activeaza elementele hardware pentru NMI.• Intreruperile generate software nu pot fi mascate prin flagul

IF.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 20/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  39

Întreruperi si excepţ ii la microprocesoarele INTELSurse ale exceptiilor 

• Exceptii de tip eroare de program detectate de procesor. Procesorulgenereaza una sau mai multe exceptii atunci cand detecteaza erorisoftware (aplicatie sau sistem de operare) . Exista un numar asociatfiecarei exceptii detectabile de catre procesor.

• Exceptii generate software. Instructiunile INTO, INT 3 permitgenerarea exceptiilor software. Aceste instructiuni permit verificareaconditiilor exceptiei prin fluxul de instructiuni.

• De exemplu, INT 3 cauzeaza generarea exceptiei breakpoint sauINTO  – generarea exceptiei overflow.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  40

Întreruperi si excepţ ii la microprocesoarele INTELSurse ale exceptiilor 

• Instructiunea INT n poate fi utilizata pentru a emula exceptii prin software.

• Exista limitari fata de exceptiile generate prin hardware care produc uncod al erorii.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 21/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  41

Întreruperi si excepţ ii la microprocesoarele INTELClasificarea intreruperilor interne si exceptiilor in functie de

raportare 

• Erori — exceptii care pot fi corectate si care odata corectate permitrepornirea programului fara pierderea continuitatii. Daca se raporteaza oexceptie de tip eroare, procesorul reface starea masini cu starea dedinaintea executiei instructiunii eronate. Adresa de return (continutul salvatal registrelor CS, EIP) al rutinei indica instructiunea cu eroare si nuinstructiuneaurmatoareacesteia. ( Ex: divide error exception ; invalidopcode exception ; interrupt table limit too small ).

• Capcane – exceptii care sunt raportate imediat dupa executia instructiuniicapcana. Capcanele permit ca executia unui program sa continue farapierderea de continuitate. Adresa de return arata instructiuneade executatdupa instructiuneacapcana. (Ex. breakpoint exception – INT 3).

• Abort – exceptii care nu raporteaza locatia instructiunii care cauzeazaexceptia si nu repornesc programul care a cauzat exceptia. Sunt utilizate

pentru erori severe, erori hardware, inconsistentesau valori ilegale intabelele sistemului.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  42

Întreruperi si excepţ ii la microprocesoarele INTELPrioritati

• Prioritatea se realizeaza in doua moduri:

• Pe baza unei ierarhii a grupurilor de intreruperi. Ordinea este: reset,intreruperi interne si exceptii, intreruperi software intreruperinemascabile si intreruperile hardware externe.

• In fiecare grup, fiecare intrerupere are asignat un nivel de prioritateprin numarul tipului. Tipul 0 identifica, iar 255 identifica intreruperea cuprioritatea cea mai scazuta.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 22/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  43

Prelucrareaintreruperilor in mod

real la 80386DX

• La sfarsitul instructiunii curentemicroprocesorul testeaza.

• intai intreruperile internesau exceptiile,

• apoi NMI, s i,

• la final, INTR pentru adetermina daca a aparutvreo intrerupere externa.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  44

Întreruperi si excepţ ii la microprocesoarele INTELTabela vectorilor/descriptorilor de intreruperi

• Aceasta tabela face legatura intre numerele tipurilordeintreruperi si locatiade memorie unde se afla rutina deservire a intreruperii. Tabela se numeste:

• Tabela vectorilorde intreruperi (IVT) – in modul real;• Tabela descriptorilorde intreruperi (IDT) - in modul

protejat

• Tabela contine 256 de elemente – pointeri de adrese

(Vector 0 ÷ Vector 255), unde un element corespundefiecarui numar asociat tipurilorde intreruperi. Pointeriiidentifica in memoria program locatiilede inceput alerutinelor de tratare a intreruperilor.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 23/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  45

Întreruperi si excepţ ii la microprocesoarele INTELTabela vectorilor/descriptorilor de intreruperi

•  In general , IVT ocupa zona 00000H ÷ 003FFH (primul 1KB dememorie). Se poate ca IVT sa se afle oriunde in spatiul de memorie.Adresa de inceput si marimea sa pot fi definite de registrul IDTR. Lareset sau la pornirea sistemului in modul real continutul IDTR este 0 iarlimita IVT este 3FF.

• Fiecare vector are 2 cuvinte de memorie.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  46

Întreruperi si excepţ ii la microprocesoarele INTELTabela vectorilor/descriptorilor de intreruperi

• Cuvintele de la adresele 003FCH si 003FF vor indicaCS255 : IP255.

• In tabela IVT:• Vectorii 0 ÷ 31 : au functii dedicate sau sunt

rezervati. Exemplu: 0,1,3,4 sunt pentru divide error,debug exception, breakpoint, overflow error .

• Vectorii 32 ÷ 255 : disponibili utilizatorilor pentrudiverse intreruperi software sau hardware.

• In cazul intreruperilor hardware externe: fiecare numar

(nivel de prioritate) are asociat un semnal de intrerupereintr-un hardware extern.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 24/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  47

Întreruperi si excepţ ii la microprocesoarele INTELTabela vectorilor de intreruperi si IDT

•  Tabela descriptorilor de intreruperi (IDT) se pot afla oriunde inspatiul de memorie.

• IDTR contine adresa de baza si limita IDT• IDT contine descriptori de poarta (gate descriptors) max 256.

• Daca rutina careia i se transfera controlul este in taskul curent,atunci se foloseste: trap gate sau interrupt gate;

• Daca rutina careia i se transfera controlul este in alt task, atuncise foloseste: task gate

• Prin acest mecanism se redirectioneaza executia programului.• Un descriptor de poarta are 8 bytes de memorie

• Gate 0 se afla la IDT + 0H ÷  IDT + 7H 

• Limita tabelei IDT poate fi o valoare mai mica de 7FFH pentru a

minimiza memoria rezervata pentru IDT.

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  48

Întreruperi si excepţ ii la microprocesoarele INTELFormatul descriptorului portii de intrerupere

•  Octetul drepturilor de acces: identifica daca sau nudescriptorul de poarta este valid, nivelul de privilegii alerutinei si tipul portii.

•   P  – prezent; 1 – descriptorul este activ;

•   DPL – nivel de privilegii pentru rutina de servire aintreruperii; 00 – cel mai privilegiat.

•   T  – tip = 0 poarta de intreruperi= 1 poarta de capcana : pentru capcana,

flagul IF nu este sters.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 25/26•

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  49

Întreruperi si excepţ ii la microprocesoarele INTELInstructiuni pentru intreruperi

Instructiuni de manipulare a flagului de intreruperi (IF)

• CLI – sterge IF

• STI – seteaza IF (activeaza semnalul INT)

• Instructiunile se executa in modul protejat. Daca CPL > IOPL instructiunilenu se executa si se genereaza exceptia general protection 

LilianaDobrica, Sisteme cu Microprocesoare 2013-2014  50

Întreruperi si excepţ ii la microprocesoarele INTELInstructiuni pentru intreruperi

•  LIDT (Load interrupt descriptor table register) esteinstructiunea utilizata pentru a modifica registrul IDTR.In forma generala este:

• LIDT EA ; EA- adresa efectiva• EA este reprezentata prin 3 words = 2

words pentru adresa de baza +1 wordpentru limita tabelei;

•  SIDT (store interrupt descriptor table register) esteinstructiunea utilizata pentru examinarea continutuluiregistrului IDTR.

7/23/2019 CursMS9_2014

http://slidepdf.com/reader/full/cursms92014 26/26