Curs_2 - Universitatea Politehnica Timişoara

Download Report

Transcript Curs_2 - Universitatea Politehnica Timişoara

Proiectarea Microsistemelor Digitale
Curs 2
1
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ă.
2
Proiectarea Microsistemelor Digitale

Terminalele
3
Proiectarea Microsistemelor Digitale

Structura internă
4
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.
5
Proiectarea Microsistemelor Digitale

Setul de registre:

registre de segment,
 registre generale şi
 registre sistem.
Registrele de segment

6
Proiectarea Microsistemelor Digitale

Registrele generale
7
Proiectarea Microsistemelor Digitale

Registrele sistem
8
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
9
Proiectarea Microsistemelor Digitale

împărţirea memoriei în blocuri pe 32 biţi şi 16 biţi
10
Proiectarea Microsistemelor Digitale

Cicluri normale şi cu generare în avans a adreselor

succesiune de cicluri normale
Citire 1
T1
CLK2
/BE3-0,
A31-2,
M//IO,
D//C
Scriere 3
Citire 2
T2
T1
T2
T1
Adresă 3
Adresă 2
Adresă 1
T2
W//R
/ADS
/NA
/READY
D31-0
IN 1
IN 2
OUT 3
11
Proiectarea Microsistemelor Digitale

succesiune de cicluri cu generare în avans a adreselor
Citire 1
T1p
CLK2
/BE3-0,
A31-2,
M//IO,
D//C
W//R
Adresă 1
Citire 2
T2p
T1p
Scriere 3
T2p
T1p
Adresă 2
Adresă 3
IN 1
IN 2
T2p
Adresă 4
/NA
/ADS
/READY
D31-0
OUT 3
12
Proiectarea Microsistemelor Digitale

tranziţia de la un ciclu normal la unul cu generare în avans a adreselor
Citire 2
Citire 1
T1
CLK2
/BE3-0,
A31-2,
M//IO,
D//C,W//R
T2
Adresã 1
T1p
T2p
Scriere 3
T1p
T2p
Adresã 2
Adresã 3
IN 1
IN 2
/NA
/ADS
/READY
D31-0
13
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
Adrese
R
e
g
Bloc
de
memorie 0
STB
R
e
g
STB
DEC
Bloc
de
memorie 1
DEC
CS
CS
Date
ADS0
W/ R
M / IO
CLK
ADS1
Bloc
de
comanda
ADS
READY
SEL
14
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.
15
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ă.
16
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ă
Mecanismul de
segmentare
Mecanismul de
paginare
adresa fizică
17
Proiectarea Microsistemelor Digitale

Mecanismul de segmentare
18
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;
19
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
LDTR
partea vizibilă
GDT
LDTR
partea invizibilă
LDT
20
Proiectarea Microsistemelor Digitale

Structura unui selector de segment:
15
3 2
INDEX
TI
1
0
RPL

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
21
Proiectarea Microsistemelor Digitale

Descriptor:



pentru segmente de cod şi date;
pentru segmente sistem, un tip aparte fiind descriptorii de tip poartă;
structura descriptorilor:
31
0
BAZĂ 31-24
D
A
G / 0 V
B
L
Limită
19-16
P DPL S
BAZĂ 15-0
TIP
A
14
Descriptor
pentru
segmente de
cod şi date
0
BAZĂ 23-16
LIMITĂ 15-0
31
0
BAZĂ 31-24
G 0 0 0
Limită
19-16
P DPL 0
BAZĂ 15-0
TIP
BAZĂ 23-16
14 Descriptor
pt.
segmente
sistem
0
LIMITĂ 15-0
31
0
DEPLASAMENT 31-16
SELECTOR
P DPL 0
TIP
0 0 0
NUMĂR
DEPLASAMENT 15-0
14 Descriptor
de tip
poartã
0
22
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.
23
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.
24
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.
25
Proiectarea Microsistemelor Digitale

Obţinerea adresei fizice a punctului de intrare în segmentul
destinaţie cu o poartă de tip apel:
Adresa logică
DEPLASAMENT
SELECTOR
GDT/ LDT
DEPLASAMENT
NEFOLOSIT
Poartă de tip apel
SELECTOR
BAZĂ
+
LIMITĂ
Descriptor pentru segmentul
destinaţie
Adresa fizică a punctului de intrare
26
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.
27
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.
28
Proiectarea Microsistemelor Digitale

Verificarea şi compararea nivelelor de privilegiu se face la încărcarea unui
selector şi în următoarele situaţii:



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;


la accesul la date,
la transferul controlului în alt segment de cod.
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.
29
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,
harta de intrare/ ieşire,
câmp pentru informaţii suplimentare la dispoziţia sistemului de operare
sau a programelor aplicative.
30
Proiectarea Microsistemelor Digitale

Structura unui TSS:
7
31
65535
HARTĂ
I/E
{
16
15
8
0
FF H
65504


63
31
+2000
+1FFC
56
24
55
23
48
16
47
15
40 39
8
7
Informaţii de stare
suplimentare

LDT
GS
FS
0
0
0
0
0
0
0
DS
SS
CS
ES
EDI
ESI
EBP
ESP
EBX
EDX
ECX
EAX
SS2
50
4C
48
44
40
3C
38
34
20
1C
18
14
10
C
SS0
8
4
0
ESP0
0
60
5C
58
54
SS1
ESP1
0
64
28
24
ESP2
0
T
30
2C
EFLAGS
EIP
CR3
0
DEPLASAMENT
HARTĂ

0
DEPLASAMENT HARTĂ
+0004
32
0
LEGĂTURA
31
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.
32
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.
33
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ă;
34
Proiectarea Microsistemelor Digitale

Structura mecanismului de paginare:
Adresã liniarã
22 21
12 11
31
0
Director
Tabelã
Deplasament
31
31
0
0
+
Adresa
fizicã
+
}
Pagina fizicã
doritã
+
Tabela
paginilor
CS3
Tabela
directorilor
35
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.
36
Proiectarea Microsistemelor Digitale

Adresarea memoriei la microprocesorul 80386:
15
0
Adresã
logicã
31
0
SELECTOR
DEPLASAMENT
Descriptor
+
Tabelã descriptori
GDT sau LDT
Adresã
liniarã
22
31
21
12
Tabelã
Director
11
0
Deplasament
Paginare neactivatã
Memoria fizicã
Paginare
activatã
Memorie
cache pentru
paginare
(TLB)
Cãutare cu succes
+
Adresa
fizicã
Cãutare fãrã
succes
31
31
0
}
Pagina
fizicã
doritã
0
+
CR3
Tabela
directorilor
Tabela paginilor
37
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.
38
Proiectarea Microsistemelor Digitale

Accesul la rutina de tratare a unei întreruperi sau
excepţii printr-o poartă de tip întrerupere sau trap
GDT sau LDT
Descriptor pt.
segment de cod
Segment de cod
}
+
Rutina de tratare
IDT
Deplasament
Poartã de tip
întrerupere sau trap
Vector de
întrerupere
39