Proiectarea Microsistemelor Digitale

39
1 Proiectarea Microsistemelor Digitale Curs 2

description

Proiectarea Microsistemelor Digitale. Curs 2. Proiectarea Microsistemelor Digitale. Microprocesorul 80 386 este primul microprocesor pe 32 biţi, atât la nivelul magistralei de date cât şi la nivelul registrelor interne; - PowerPoint PPT Presentation

Transcript of Proiectarea Microsistemelor Digitale

Page 1: Proiectarea Microsistemelor Digitale

1

Proiectarea Microsistemelor Digitale

Curs 2

Page 2: Proiectarea Microsistemelor Digitale

2

Proiectarea Microsistemelor Digitale

Microprocesorul 80386

este primul microprocesor pe 32 biţi, atât la nivelul magistralei de date cât şi la nivelul registrelor interne;

conţine un mecanism de gestiune a memoriei performant care preia de la 286 conceptul şi soluţia segmentării memoriei şi îi adaugă conceptul şi soluţia paginării memoriei; toate microprocesoarele din familie care i-au urmat, inclusiv Pentium, au preluat acest mecanism de gestiune a memoriei;

viteza a crescut nu numai prin creşterea frecvenţei tactului dar şi prin îmbunătăţiri structurale, ca de exemplu: creşterea numărului blocurilor interne care lucrează independent şi ciclurile maşină cu generarea în avans a adreselor;

include facilităţi de depanare şi autotestare; creşterea capacităţii de memorie gestionabilă: 64 To/ task

memorie virtuală ce poate fi mapată în 4 Go memorie fizică.

Page 3: Proiectarea Microsistemelor Digitale

3

Proiectarea Microsistemelor Digitale

Terminalele

Page 4: Proiectarea Microsistemelor Digitale

4

Proiectarea Microsistemelor Digitale

Structura internă

Page 5: Proiectarea Microsistemelor Digitale

5

Proiectarea Microsistemelor Digitale

Unitatea de interfaţare la magistrală asigură legătura microprocesorului cu exteriorul; este solicitată de toate celelalte unităţi;

Unitatea de aducere în avans a instrucţiunilor implementează o facilitate existentă şi la microprocesorul 8086: atunci când nu se execută vreun acces la magistrală, unitatea aduce în avans instrucţiuni şi le depune într-un şir de instrucţiuni, de 16 octeţi, economisindu-se astfel timpul de aducere a codului instrucţiunii;

Unitatea de decodificare a codului instrucţiunii extrage codurile de instrucţiune din unitatea de aducere în avans a instrucţiunilor şi le decodifică; necesită o perioadă de tact pentru a decodifica un octet de cod;

Unitatea de execuţie cuprinde unitatea aritmetică şi logică, setul de registre şi dispozitivul de comandă şi control care conduce întreaga activitate a microprocesorului;

Unitatea de segmentare translatează adresa logică în adresă liniară şi realizează protecţia;

Unitatea de paginare preia, dacă este activată, adresa liniară furnizată de unitatea de segmentare şi o transformă în adresă fizică; dacă nu este activată, adresa liniară devine adresă fizică; cuprinde o memorie cache pentru paginare, în scopul creşterii vitezei.

Page 6: Proiectarea Microsistemelor Digitale

6

Proiectarea Microsistemelor Digitale

Setul de registre: registre de segment, registre generale şi registre sistem.

Registrele de segment

Page 7: Proiectarea Microsistemelor Digitale

7

Proiectarea Microsistemelor Digitale

Registrele generale

Page 8: Proiectarea Microsistemelor Digitale

8

Proiectarea Microsistemelor Digitale

Registrele sistem

Page 9: Proiectarea Microsistemelor Digitale

9

Proiectarea Microsistemelor Digitale

Ciclurile maşină tipuri de cicluri

M//IO D//C W//R Tip de ciclu

0 0 0 Acceptare a cererii de întrerupere

0 0 1 Nu apare

0 1 0 Citire de la porturi

0 1 1 Scriere la porturi

1 0 0 Aducere cod de instrucţiune

1 0 1 Halt sau Shutdown

1 1 0 Citire date din memorie

1 1 1 Scriere date in memorie

Page 10: Proiectarea Microsistemelor Digitale

10

Proiectarea Microsistemelor Digitale

împărţirea memoriei în blocuri pe 32 biţi şi 16 biţi

Page 11: Proiectarea Microsistemelor Digitale

11

Proiectarea Microsistemelor Digitale

Cicluri normale şi cu generare în avans a adreselor succesiune de cicluri normale

/ADS

CLK2

Citire 1 Citire 2Scriere 3

T1 T1 T1T2 T2 T2

W//R

/NA

/READY

D31-0

/BE3-0,A31-2,M//IO,D//C

Adresă 1 Adresă 2 Adresă 3

IN 1 OUT 3IN 2

Page 12: Proiectarea Microsistemelor Digitale

12

Proiectarea Microsistemelor Digitale

succesiune de cicluri cu generare în avans a adreselor

Page 13: Proiectarea Microsistemelor Digitale

13

Proiectarea Microsistemelor Digitale

tranziţia de la un ciclu normal la unul cu generare în avans a adreselor

Page 14: Proiectarea Microsistemelor Digitale

14

Proiectarea Microsistemelor Digitale

Ciclurile cu generare în avans a adreselor: cîştig: minimizarea numărului de stări de aşteptare, cerinţe: tampoane de memorie, structură de tip întreţesere.

Memorie întreţesută cu 2 secţiuni: XXXXXXX0H – XXXXXXX3H şi XXXXXXX8 – XXXXXXXBH XXXXXXX4H – XXXXXXX7H şi XXXXXXXC – XXXXXXXFH

Reg

STB

Blocde

memorie 0

CSDEC

R/W

IO/M

CLK

ADS

SEL

Adrese

Date

Blocde

memorie 1

CS

Reg

STBDEC

0ADS

1ADS

Blocde

comanda

READY

Page 15: Proiectarea Microsistemelor Digitale

15

Proiectarea Microsistemelor Digitale

Organizarea şi gestionarea memoriei Modul real:

emulează microprocesorul 8086, ca urmare va avea aceeaşi arhitectură de bază dar va permite şi accesul la registre pe 32 biţi;

mecanismul de adresare este acelaşi cu cel de la 8086 ca urmare memoria va fi împărţită în segmente de 64 Ko iar registrele de segment vor indica adresa de bază a segmentelor;

utilizează acelaşi sistem de întreruperi ca 8086, tabela vectorilor de întrerupere se află în primii 1 Ko de memorie iar accesul la o intrare se face utilizînd registrele CS şi IP după acelaşi mecanism ca şi la 8086;

cu excepţia instrucţiunilor protejate, toate celelalte sunt accesibile în acest mod; dimensiunea implicită a operanzilor este de 16 biţi, ca şi la 8086, dar poate fi utilizată şi dimensiunea de 32 biţi, şi adresarea pe 32 biţi, prin intermediul prefixelor.

Page 16: Proiectarea Microsistemelor Digitale

16

Proiectarea Microsistemelor Digitale

Modul protejat:

oferă performanţe deosebite şi suport hardware complet şi rapid pentru implementarea sistemelor multitasking;

asigură comutarea rapidă a taskurilor, separarea şi protecţia zonelor de memorie proprii taskurilor, între ele precum şi separarea şi protecţia zonelor de memorie proprii sistemului de operare;

oferă un mecanism de privilegii, pe 4 nivele, care ordonează zonele de memorie şi împiedică accesele neautorizate la memorie;

orice acces la memorie este posibil doar respectând un set de reguli bine determinat care include controale de tip de acces, controale de drepturi de acces şi controale de nivel de privilegiu;

permite ca fiecărui task să îi fie alocaţi 64 To memorie virtuală şi această memorie virtuală va putea fi mapată în doar 4 Go memorie fizică.

Page 17: Proiectarea Microsistemelor Digitale

17

Proiectarea Microsistemelor Digitale

În modul protejat microprocesorul are 3 spaţii de adrese: logice, date de programator, liniare, obţinute din mecanismul de segmentare şi fizice, obţinute din mecanismul de paginare.

adresa logică adresa liniară

adresa fizică

Mecanismul desegmentare Mecanismul de

paginare

Page 18: Proiectarea Microsistemelor Digitale

18

Proiectarea Microsistemelor Digitale

Mecanismul de segmentare

Page 19: Proiectarea Microsistemelor Digitale

19

Proiectarea Microsistemelor Digitale

Adresa logică = Deplasament + Registru selector; Deplasament: 32 biţi, furnizat de instrucţiune; Registru selector = Registru de segment; Conţinutul registrului selector: index în Tabela; O intrare în Tabel = grup de 8 octeţi numit descriptor;

3 tipuri de tabele cu descriptori: Tabela Descriptorilor Globali (GDT) – comună tuturor taskurilor; Tabela Descriptorilor Locali (LDT) – proprie unui task; Tabela Descriptorilor de Întreruperi (IDT) – comună tuturor

taskurilor;

Page 20: Proiectarea Microsistemelor Digitale

20

Proiectarea Microsistemelor Digitale

GDTR (Global Descriptor Table Registers) indică adresa de bază şi limita GDT;

IDTR (Interrupt Descriptor Table Registers) indică adresa de bază şi limita IDT;

LDTR (Local Descriptor Table Registers): microprocesorul vede LDT – urile ca segmente de sine stătătoare

GDT LDTLDTRpartea vizibilă

LDTRpartea invizibilă

Page 21: Proiectarea Microsistemelor Digitale

21

Proiectarea Microsistemelor Digitale

Structura unui selector de segment:

INDEX = 13 biţi → GDT sau LDT are 213 = 8192 intrări a cîte 8 octeţi → o tabelă are 8 – 65536 octeţi;

Un task poate accesa maxim:

8192 segmente comune + 8192 segmente propri = 16384 segmente

INDEX

15 3 2 1 0

TI RPL

Page 22: Proiectarea Microsistemelor Digitale

22

Proiectarea Microsistemelor Digitale

Descriptor: pentru segmente de cod şi date; pentru segmente sistem, un tip aparte fiind descriptorii de tip poartă; structura descriptorilor:

DPL BAZĂ 23-16BAZĂ 31-24

BAZĂ 15-0 LIMITĂ 15-0

TIPLimită19-16G 0 00 0P

31 0

0

14

SELECTOR DEPLASAMENT 15-0

TIPDEPLASAMENT 31-16

NUMĂR0 0 0 0P DPL

31 0

0

14

BAZĂ 15-0 LIMITĂ 15-0

S BAZĂ 23-16BAZĂ 31-24TIPDPLP

Limită19-16 AG 0

AVL

D/B

31 0

0

14Descriptor

pentrusegmente decod şi date

Descriptorpt.

segmentesistem

Descriptorde tippoartã

Page 23: Proiectarea Microsistemelor Digitale

23

Proiectarea Microsistemelor Digitale

P ("Present"): bitul de prezenţă; 1 înseamnă ca segmentul este în memoria fizică iar 0 înseamnă ca segmentul nu se găseşte în memoria fizică deci o încercare de acces la el va provoca o excepţie;

DPL ("Descriptor Privilege Level"): este nivelul de privilegiu al segmentului;

S ("Segment Descriptor"): indică tipul descriptorului; 1 pentru segmente de cod şi date şi 0 pentru segmente sistem;

G (“Granularity”): unitatea de măsură este octetul sau pagina de 4 KO; TIP: se interpretează diferit funcţie de tipul segmentului;

A ("Accessed"): segmentul a mai fost, 1, sau nu a mai fost, 0, accesat; este folosit de mecanismul de memorie virtuală pentru a selecta segmentul care va fi eliminat din memoria fizică; sistemul de operare va şterge acest rang după fiecare accesare a segmentului, contorizând simultan numărul de accesări ale segmentului; în acest fel sistemul de operare poate afla numărul de accesări ale fiecărui segment într-o perioadă de timp determinată; dacă segmentul care se elimină din memoria fizică este ales după criteriul "cel mai puţin folosit" într - o anumită perioadă, atunci contorizările realizate de sistemul de operare indică rapid segmentul ce va fi eliminat.

Page 24: Proiectarea Microsistemelor Digitale

24

Proiectarea Microsistemelor Digitale

Descriptorii pentru segmente de cod şi date: E = 1 - descriptor pentru segment de cod:

C ("Conforming"): bit de conformitate, oferă posibilitatea ca un segment de cod să fie accesat din segmente de cod mai puţin privilegiate; dacă C = 0 atunci segmentul se numeşte neconform şi o încercare de trecere în acest segment dintr-un segment de cod cu un nivel de privilegiu diferit nu se va realiza, ci va determina o excepţie de tip protecţie generală, 13, cu excepţia cazului când transferul se face printr-o poartă de tip apel; dacă C = 1 atunci segmentul se numeşte conform şi poate fi accesat din segmente de cod mai puţin privilegiate;

R ("Readable"): 0 înseamnă că segmentul nu poate fi citit ci doar executat iar 1 înseamnă că segmentul poate fi şi citit şi executat; un segment de cod ce poate fi şi citit trebuie folosit atunci când el conţine şi constante şi instrucţiuni; acest rang poate fi folosit şi la protecţie contra furturilor de cod.

E = 0 - descriptor pentru segment de date sau stivă: ED ("Expansion Direction"): specifică dacă segmentul este expandabil spre adrese mai

mici (cazul segmentelor de stivă), 1 sau spre adrese mai mari (cazul segmentelor de date), 0; dacă ED = 0 atunci deplasamentul din adresa logică trebuie să fie egal sau mai mic decât limita specificata în descriptor iar dacă ED = 1 atunci deplasamentul trebuie să fie egal sau mai mare decât limita, în caz contrar generându-se o excepţie; prin acest mecanism se stabileşte până unde se poate întinde un segment de date sau de stivă;

W ("Writeable"): specifică dacă segmentul respectiv este protejat, 0, sau nu, 1, la scriere.

Page 25: Proiectarea Microsistemelor Digitale

25

Proiectarea Microsistemelor Digitale

Descriptorii pentru segmente sistem: Descriptori pentru LDT, Descriptori pentru Segment Stare Task (TSS), Descriptori de tip poartă.

Descriptorii de tip poartă: controlează trecerea dintr-un segment de cod în altul, introduc un nivel de indirectare suplimentar între segmentul sursă

şi segmentul destinaţie, 4 tipuri:

apel: intrarea în noul segment se obţine din SELECTOR şi DEPLASAMENT ale porţii,

task: se referă doar la TSS, întrerupere: afectează IF, trap: nu afectează IF.

Page 26: Proiectarea Microsistemelor Digitale

26

Proiectarea Microsistemelor Digitale

Obţinerea adresei fizice a punctului de intrare în segmentul destinaţie cu o poartă de tip apel:

+

DEPLASAMENT

SELECTOR

BAZĂ

LIMITĂ

GDT/ LDT NEFOLOSIT

Poartă de tip apel

Descriptor pentru segmentul destinaţie

Adresa fizică a punctului de intrare

SELECTOR DEPLASAMENT

Adresa logică

Page 27: Proiectarea Microsistemelor Digitale

27

Proiectarea Microsistemelor Digitale

Dezavantaj al mecanismului de segmentare: citirea unui descriptor adică 2 cicluri suplimentare; soluţia:

registre cache pentru descriptori. Avantaje ale mecanismului de segmentare:

facilitează implementarea sistemelor multitasking prin asignarea segmentelor de cod şi date propri,

facilităţile de protecţie oferite de microprocesor asigură separarea segmentelor corespunzătoare unui task de cele corespunzătoare altui task şi de cele corespunzătoare sistemului de operare; în acest fel pot rula concurent mai multe taskuri, izolate unul de celălalt, fiecare având acces doar la propriile resurse şi izolate de resursele sistemului de operare,

un program oarecare nu poate modifica resursele sistemului de operare şi o eroare dintr-un program nu poate afecta decât propriile resurse,

în cazul existenţei unei erori într-un program care duce la abandonarea sa, alte programe pot rula pentru a diagnostica şi, eventual corecta, eroarea.

Page 28: Proiectarea Microsistemelor Digitale

28

Proiectarea Microsistemelor Digitale

Verificările care asigură protecţia sunt realizate de microprocesor înainte de fiecare acces la memorie, în timpul translatării adresei, deci nu necesită timp suplimentar. Verificări: de tip: verificarea restricţiilor impuse de octetul de atribute din descriptor, de limită: împiedică un acces în afara segmentului, de puncte de intrare în segmentul destinaţie: se realizează prin porţi, de nivele de privilegiu:

4 nivele de privilegiu: 0 (cel mai privilegiat) – 3 (cel mai puţin privilegiat), nivelul 0 se alocă nucleului sistemului de operare iar nivelul 3 se alocă programelor

aplicative.

Există trei tipuri de nivele de privilegiu: nivelul de privilegiu al taskului, CPL ("Current Privilege Level"): este nivelul de

privilegiu al programului care rulează şi valoarea sa este dată de ultimii doi biţi din registrul CS;

nivelul de privilegiu al segmentului, DPL ("Descriptor Privilege Level"): este un câmp al descriptorului şi defineşte nivelul de privilegiu al segmentului corespunzător;

nivelul de privilegiu al selectorului, RPL ("Requested Privilege Level"): este nivelul de privilegiu din selectorul care corespunde segmentelor de date; microprocesorul crează EPL ("Effective Privilege Level") al unui task ca fiind EPL = max (CPL, RPL) adică rezultă cel mai puţin privilegiat nivel între CPL şi RPL.

Page 29: Proiectarea Microsistemelor Digitale

29

Proiectarea Microsistemelor Digitale

Verificarea şi compararea nivelelor de privilegiu se face la încărcarea unui selector şi în următoarele situaţii: la accesul la date, la transferul controlului în alt segment de cod.

Accesul la date: dacă nivelul de privilegiu efectiv al taskului este egal sau mai mare decât nivelul de privilegiu al segmentului adică nivelul cel mai mic fixat de RPL sau CPL să fie mai privilegiat sau egal cu nivelul fixat de DPL, adică în valori: max (CPL, RPL) DPL; excepţii ...

Transferul controlului în alt segment de cod (intersegment) se realizează prin încărcarea registrului CS utilizând o instrucţiune de tip JMP sau CALL intersegment (jmp far sau call far); transferul este permis dacă: DPL-ul segmentului destinaţie este egal cu CPL-ul taskului apelant; aceasta

înseamnă că cele 2 segmente de cod au nivele de privilegiu egale şi se va verifica doar dacă adresa de intrare în segmentul destinaţie nu depăşeşte limita segmentului;

segmentul destinaţie este un segment conform şi DPL-ul său este egal sau mai mic decât CPL-ul taskului apelant, adică segmentul destinaţie este mai privilegiat sau cu acelaşi nivel de privilegiu ca taskul apelant; se va verifica doar dacă adresa de intrare nu depăşeşte limita segmentului;

accesul la un segment neconform cu nivel de privilegiu diferit de cel al segmentului de cod apelant, singura cale este cea dată de porţi.

Page 30: Proiectarea Microsistemelor Digitale

30

Proiectarea Microsistemelor Digitale

Transferul controlului se realizează şi în cazul comutării taskurilor; Comutarea taskurilor înseamnă transferul controlului într-un alt

segment de cod, împreună cu salvarea stării curente a microprocesorului şi încărcarea noii stări a microprocesorului;

Fiecărui task îi corespunde un segment special, numit Segment Stare Task, TSS, care conţine toate informaţiile necesare actualizării stării microprocesorului şi revenirii în taskul de unde s-a făcut comutarea: indicatorii de stivă şi valorile selectorilor pentru stivele corespunzătoare

nivelelor de privilegiu 0, 1 şi 2, conţinuturile registrelor generale, inclusiv ale registrelor EIP şi EFLAGS;

registrul EIP conţine punctul de intrare în taskul corespunzător, selectorul pentru LDT al taskului respectiv, legătura cu taskul apelant şi harta de intrare/ ieşire câmp pentru informaţii suplimentare la dispoziţia sistemului de operare

sau a programelor aplicative.

Page 31: Proiectarea Microsistemelor Digitale

31

Proiectarea Microsistemelor Digitale

Structura unui TSS:HARTĂI/E {

31

65504

FF H65535

16 15 8

7 0+2000+1FFC

+0004

DEPLASAMENT HARTĂ

Informaţii de staresuplimentare

DEPLASAMENT HARTĂ T 64

60

5C

5854

50

4C

4844

40

3C

3834

30

2C

2824

20

1C

1814

10

C

84

0

63

31

56

24

55

23

48

16

47

15

40

8 7

39 32

0

0

0 LDT

0 GS

FS

DS

SSCS

ES

0

0

0

0

0

EDI

ESI

EBPESP

EBX

EDX

ECXEAX

EFLAGS

EIP

CR3

SS20

SS10

SS00

LEGĂTURA0

ESP2

ESP1

ESP0

Page 32: Proiectarea Microsistemelor Digitale

32

Proiectarea Microsistemelor Digitale

Fiecărui task îi corespund segmente de date proprii ale căror descriptori se găsesc într-o LDT proprie; aceasta asigură o izolare a datelor corespunzătoare taskurilor; selectorul care va fi încărcat în LDTR, partea vizibilă, va fi preluat din TSS;

Cîmpul HARTĂ I/E completează protecţia la operaţiile de I/E: Verificările menţionate, CPL ≤ IOPL, biţii din HARTĂ I/E.

Adresa de început şi limita unui TSS se obţin dintr-un descriptor pentru un TSS, prezent în GDT;

Accesul la descriptor se face printr-un selector conţinut în registrul de task, TR, în partea vizibilă a sa;

În partea invizibilă a sa se încarcă, din descriptor, adresa de bază şi limita Segmentului Stare Task, realizându-se accesul la acesta.

Page 33: Proiectarea Microsistemelor Digitale

33

Proiectarea Microsistemelor Digitale

Operaţiile executate de microprocesor la comutarea taskurilor sunt următoarele:

se memorează valorile curente pentru registrele generale, EAX, EBX, ECX, EDX, ESP, EBP, ESI, EDI, CS, SS, DS, ES, FS, GS, EIP şi EFLAGS în TSS activ şi acesta este trecut în stare de liber;

se încarcă registrul de task, TS, partea vizibilă, cu valoarea corespunzătoare noului task şi se trece noul task în starea activ; se setează rangul TS din registrul de control CR0;

se încarcă registrele şi LDTR, partea vizibilă cu valorile din noul TSS; se încarcă şi partea invizibilă a LDTR;

se intră în noul task în punctul CS:EIP.

Page 34: Proiectarea Microsistemelor Digitale

34

Proiectarea Microsistemelor Digitale

Mecanismul de paginare:

a apărut ca urmare a dimensiunilor mari ale segmentelor (până la 4 Go), în scopul gestionării mai eficiente a lor, priveşte segmentul ca fiind alcătuit din pagini fixe de 4 Ko şi oferă facilităţi suplimentare de protecţie.

activarea / dezactivarea mecanismului de paginare se face prin setarea / resetarea rangului PG, cel mai semnificativ, din registrul CR0;

mecanismul de paginare preia adresa generată de cel de segmentare, adresa liniară, şi o transformă în adresă fizică;

dacă mecanismul de paginare nu este activat, atunci adresa liniară devine adresă fizică;

Page 35: Proiectarea Microsistemelor Digitale

35

Proiectarea Microsistemelor Digitale

Structura mecanismului de paginare:

0

Director Tabelã31 022 21 1112

31

+

+

31 0

+

Deplasament

Tabelapaginilor

CS3Tabela

directorilor

Adresã liniarã

Adresafizicã

Pagina fizicãdoritã}

Page 36: Proiectarea Microsistemelor Digitale

36

Proiectarea Microsistemelor Digitale

Avantaje: se pot gestiona 1024 x 1024 = 1 M pagini a cîte 4 Ko; tabelele sunt ele însele pagini de cîte 4 Ko; cere zone de memorie compacte de dimensiuni mici: 4 Ko faţă

de un mecanism pe un singur nivel, cu pagini de 4 Ko, pentru care ar fi fost necesară o tabelă cu 1 M intrări şi considerând 4 octeţi/ intrare ar fi fost necesară o zonă de memorie compactă de 4 Mo.

Dezavantaje: necesitatea execuţiei a două accese suplimentare la memorie

pentru fiecare acces dorit, ceea ce înseamnă timp suplimentar; soluţia: prevederea în microprocesor a unei memorii cache

pentru paginare, cunoscută sub denumirea de TLB; conţine adresele celor mai recent folosite 32 pagini; tabela are 32 intrări şi poate acoperi 128 Ko de memorie.

Page 37: Proiectarea Microsistemelor Digitale

37

Proiectarea Microsistemelor Digitale

Adresarea memoriei la microprocesorul 80386:

Page 38: Proiectarea Microsistemelor Digitale

38

Proiectarea Microsistemelor Digitale

Sistemul de întreruperi: întreruperi: provocate de evenimente externe şi instrucţiuni INT nn; excepţii: provocate de evenimente interne; 3 grupe:

erori ("faults"): o eroare este o excepţie detectată înaintea execuţiei instrucţiunii care a provocat-o; exemple sunt: violare de privilegii, segment sau pagină lipsă din memoria fizică etc.; adresa de revenire din rutina de tratare este adresa instrucţiunii în timpul căreia s-a detectat excepţia deci are loc o restartare a instrucţiunii;

traps: este un tip de excepţie luată în considerare la sfârşitul execuţiei instrucţiunii care a provocat-o; exemple sunt: eroare la divizare, ieşire din domeniu; adresa de revenire din rutina de tratare este adresa instrucţiunii următoare instrucţiunii în timpul căreia s-a detectat excepţia;

abandonuri: apare ca urmare a unor situaţii deosebite, catastrofale, de exemplu o eroare hardware; nu se cunoaşte instrucţiunea care a determinat abandonul şi nu se poate asigura nici continuarea execuţiei programului;

tratare în mod real şi în mod protejat; Tabela vectorilor: în mod protejat conţine descriptori porţi de tip

întrerupere sau trap şi este IDT.

Page 39: Proiectarea Microsistemelor Digitale

39

Proiectarea Microsistemelor Digitale

Accesul la rutina de tratare a unei întreruperi sau excepţii printr-o poartă de tip întrerupere sau trap