Professional Documents
Culture Documents
8-8
2.1 ai 1;
(91)
/* la pasul 91 ncepe secvena de tratare de ctre unitatea central de prelucrare a ntreruperilor externe
i interne */
2.2 AM CP
.
.
.
(la fel ca pn acum)
(nu s-au cosiderat instruciunile nou introduse)
91. T1 BUSFN (RG;DCD(ADRIS))
92. AM ADD (T1;0FFFFH;0)
T1 ADD (T1;0FFFFH;0)
/* adresa vrfului stivei actualizat se aduce n T1 i AM
93. M * DCD(AM) IND
/* se salveaz indicatorii n stiv */
94. RG * DCD (ADRIS) ADD (T1;0FFFFH;0);
AM ADD (T1;0FFFFH;0);
I 0
/* se actualizeaz IS - indicatorul vrfului stivei */
/* se dezactiveaz sistemul de ntreruperi I <- 0 n mod implicit */
95. M * DCD(AM) CP ; actadri = 1
/* salveaz adresa de revenire din subrutina de tratare a ntreruperii */
/* activeaz ADRI pe magistral pentru a fi preluat n AM la pasul 96 */
96. actadri = 1
AM ADRI
/* se ncarc AM cu adresa celulei capcan corespunztoare cererii luate n considerare. Adresa este
furnizat de o unitate logic combinaional, ADRI i este activat pe MAG de actadri */
97. (ip! id! inm! intr) * PRIL
0:3
0 ; ai * PRIL
3
0;
8-9
CP BUSFN (M;DCD(AM));
(2)
/* se anuleaz bistabilul de cerere de ntrerupere, ce a fost luat n considerare de ctre unitatea central,
utiliznd unitatea logic combinaional PRIL */
/* se ncarc n CP adresa de nceput a rutinei de tratare a ntreruperii */
/* se merge la nceputul fazei de citire interpretare */
END SEQUENCE
intr cintr; inm[D] = 1; inm[CK] = cinm; id[D] = 1;id[CK] = D
END
Noile instruciuni, necesare controlului sistemului de ntreruperi, i codificarea acestora sunt
prezentate n tabelul 8.2
Secvena de citire, interpretare i execuie a acestor instruciuni este urmtoarea:
/* la pas 84.1 se executa HLT (asteapta intrerupere), daca RI
6
=1 => EI si DI, pas 89
Daca RI
6
=0 si RI
7
=1 => INT, pas 90, altfel (RI
6
=0 si RI
7
=0) => HLT, pas 84.1 */
/* o ntrerupere extern nemascabil sau o ntrerupere extern mascabil (cu sistemul de ntreruperi
activat) scoate unitatea central de prelucrare din starea de asteptare i continu cu instruciunea
imediat urmtoare instruciunii HLT (bineneles dup execuia rutinei de tratare a ntreruperii) */
89. I RI7
(32)
/* execuia instruciunilor EI i DI */
90. CP INC(CP); ip 1
/* se actualizeaz CP i se cere ntrerupere prin program */
/* se continu cu secvena de la pas 91 comun tuturor tipurilor de ntrerupere */
Pentru a exemplifica modul de interpretare de ctre unitatea central a diferitelor tipuri de
ntrerupere, n Fig. 8.2 se prezint un exemplu de tratare, cvasisimultan, a mai multor cereri. S
presupunem c dup ce s-a activat sistemul de ntreruperi (ca urmare a execuiei instruciunii EI), n
urma unei instruciuni ADD se poziioneaz n 0 indicatorul de depire. n timpul execuiei
instruciunii ADD sosesc i cereri pe liniile cintr i cinm. De remarcat faptul c rutinele de tratare a
Tabelul 8.2 Instruciuni aferente sistemului de ntreruperi
Mnemonic Cod Funcii
EI 10001111
Activare ntreruperi externe mascabile; I <- 1
DI 10001110
Dezactivare ntreruperi externe mascabile; I <- 0
INT 10001101
Salveaz starea; I<-0 i transfer controlul indirect prin locaia 2
) 84.1 )/(91,2.1, I) (intr inm I), (intr inm (inm, 84.1
) 89 , 90 /( ) RI ), RI RI (( 84.
6 7
6
8-10
ntreruperilor de depire i extern nemascabil, dezactiveaz sistemul de ntreruperi astfel c cererile
de ntrerupere mascabile sunt recunoscute numai dac n cadrul lor se activeaz sistemul de
ntreruperi. Altfel sunt luate n considerare numai dup terminarea execuiei acestora.
Secventa UCP
instructiuni PP
Recunoastere intr.
Recunoastere intrerupere inm.
(ca urmare a executiei instructiunii ADD se pozitioneaza indicatorul de depasire D)
Program principal
Reface CP
Reface IND
Initiaza tratare
intrerupere id
Salveaza IND
I0
Salveaza CP
Salveaza IND
I0
Salveaza CP
Salveaza IND
I0
Salveaza CP
cintr,inm
IRET
IRET I=1
I=0
I=0
ADD
EI
Reface CP
Reface IND
Reface CP
Reface IND
IRET
Rutina tratare
inm
Rutina tratare
inm
Rutina tratare
inm
Figura 8.2
Tratarea cererilor de ntrerupere simultane
8.2.3 Proiectarea detaliat a sistemului de ntreruperi pentru calculatorul didactic.
Avnd n vedere caracteristicile generale ale sistemului de ntreruperi pentru calculatorul
didactic prezentate anterior se poate stabili schimbul de informaie ntre unitatea central de prelucrare,
sistemul de ntreruperi i interfeele de I/E. Schimbul de informaii este prezentat n Fig. 8.3.
Semnificaia semnalelor, exceptnd actadri, a fost prezentat anterior.
Avnd n vedere aspectele generale ale specificaiilor sistemului de ntreruperi pentru
calculatorul didactic, se poate stabili schema bloc a sistemului de ntreruperi, prezentat n Fig 8.4.
8-11
Unitatea
central de
prelucrare a
calculatorului
didactic
MAG[16]
AIE[8]
Sistemul de
ntreruperi
_____
cerint
1
_____
cerint
0
___
cintr
__
sie
ai
__
cie
ip
id
cinm cinm
inm
actadri
_____
cerint
7
Figura 8.3
Schimbul de informaie ntre
unitatea central de prelucrare, sistemul de ntreruperi i interfeele de I/E.
UCSI
__
sie
ip
ai
AIE __
cie
____
cintr
0
____
cintr
____
cintr
Logica
de
prioritati
PRI
RCI
____
cintr
7
RMI
RICS ADRI
id
MAG
actari
inm
Figura 8.4
Schema bloc a sistemului de ntreruperi
8-12
Primitivele funcionale ale sistemului de ntreruperi au urmtoarele semnificaii:
RMI - registrul de mascare ntreruperi - este scris/citit de unitatea central de prelucrare. Este utilizat
pentru mascarea individual sau n bloc a cererilor externe mascabile.
RMI
i
= 1 va inhiba cererea de ntrerupere de pe linia cerint
i
corespunztoare.
RCI - registrul de cereri ntreruperi - este scris de cererile de ntrerupere de la echipamentele
periferice prin liniile cerint0, ...cerint7. Pentru a sesiza numai sosirea unei cereri, nu i timpul
ct ea este activ, bistabilii individuali din acest registru sunt poziionai pe frontul cresctor al
cererii. Bistabilii din acest registru sunt independeni, adic, sunt manipulai individual de ctre
UCSI i cererile de ntrerupere externe mascabile cerint0, ...cerint7.
RCI are rolul de a pstra cererile de ntrerupere externe pn cnd vor fi luate n considerare de
unitatea central de prelucrare
RCIi = 0 - echipamentul extern cuplat pe nivelul i nu a lansat o cerere de ntrerupere;
RCIi = 1 - echipamentul extern cuplat pe nivelul i a lansat o cerere de ntrerupere .
PRI - unitate logic combinaional - stabilete cererea, nemascat, cu prioritatea cea mai mare din
registrul RCI. Este utilizat i pentru a stabili dac cererea, cu prioritatea cea mai mare din
RCI, poate ntrerupe eventuala cerere n curs de servire indicat de RICS.
n caz afirmativ, UCSI va lansa o cerere de ntrerupere spre unitatea central de prelucrare, pe
linia cintr, i o va transfera din RCI n RICS, pentru servire. Transfernd-o n RICS o terge
din RCI.
RICS - registrul de cereri n curs de servire - scris de UCSI i citit de unitatea central de prelucrare.
Este utilizat pentru a pstra cererile de ntrerupere a cror servire a fost iniiat dar neterminat.
Fiecrei cereri i corespunde un bit n RICS. Exist posibilitatea c, ntr-un caz extrem, toi
biii lui RICS s fie n "1".
ADRI - unitate logic combinaional - stabilete adresa celulei capcan asociat cererii a crei tratare
va ncepe.
UCSI - unitatea de comand a sistemului de ntreruperi.
Mecanismul general pentru generarea unei ntreruperi cintr spre unitatea central de prelucrare
pe baza cererilor individuale cerint0,...,cerint7 este urmtorul:
cererile de ntrerupere individuale cerint0, ..., cerint7 de la echipamentele externe se
memoreaz n RCI pe frontul cresctor al acestora;
sistemul de ntreruperi evalueaz prioritile acestor cereri, alege cererea cu prioritatea
cea mai mare dintre cele nemascate i genereaz o cerere pe linia cintr spre unitatea
central de prelucrare, numai dac prioritatea acesteia este mai mare dect a cererilor n
curs de servire, indicate de RICS;
unitatea central de prelucrare va rspunde la cererea de ntrerupere cintr cu o
confirmare a lurii ei n considerare prin activarea semnalului ai (achitare ntrerupere);
primind ai de la unitatea central de prelucrare, UCSI (unitatea de comand a
sistemului de ntreruperi) va trece n 1 bitul din RICS corespunztor cererii luate n
considerare i o va terge din RCI;
att timp ct actadri este activ, i va activa pe MAG adresa celulei capcan
corespunztoare pe baza careia se va ajunge la rutina de tratare a ntreruperii.
Pentru a detalia implementarea sistemului de ntreruperi trebuie tratate urmtoarele aspecte:
8-13
descrierea unitii logice combinaionale PRI;
descrierea unitii logice combinaionale ADRI;
descrierea UCSI.
8.2.4 Descrierea unitii logice combinaionale PRI
Aceast unitate logic combinaional este format din dou seciuni i anume:
seciunea de alegere a cererii, nemascate din RCI, cu prioritatea cea mai mare (PRIA);
seciunea de generare a unei cereri cintr spre unitatea central de prelucrare (CINTR).
Programul AHPL de descriere a primei seciuni (PRIA) este prezentat n continuare conform
cu organigrama din Fig. 8.5
A
0
PRIA
0
= 1
nu
da
A
1
PRIA
1
= 1
nu
da
A
2
PRIA
2
= 1
nu
da
A
6
PRIA
6
= 1
nu
da
A
7
PRIA
7
= 1
nu
da
Figura 8.5
Organigrama de alegere a cererii cu prioritatea cea mai mare - PRIA
UNIT: PRIA (A)
INPUTS: A [A]
OUTPUTS: PRIA [A]
1. B
0
= A
0
2. k 1
8-14
4. k k+1
5. (k < A )/(3)
6. PRIA = B
END
sau forma compactat:
UNIT: PRIA (A)
INPUTS : A [A]
OUTPUTS: PRIA [A ]
1. B
0
= 1
3.PRIA = A B
END
Schema logic, principial, pentru aceast seciune a unitii logice combinaionale este
prezentat n Fig 8.6.
PRIA
2
PRIA
1
PRIA
0
____
RCI
7
RMI
7
____
RCI
6
RMI
6
____
RCI
3
RMI
3
____
RCI
2
RMI
2
____
RCI
1
RMI
1
____
RCI
0
RMI
0
PRIA
7
PRIA
3
Figura 8.6
Schema logic a unitii PRIA
___
Aceast unitate logic combinaional va avea ca intrri, RCI RMI.
) A , /(A 3.B 1 k : 0
k k
=
2 - A : 0
2 A : 0
1 - A : 1
B A 2.B =
8-15
Ieirile unitii combinaionale vor fi egale cu 0 cu excepia celei corespunztoare cererii
(nemascate) din RCI cu prioritatea cea mai mare.
Seciunea de generare a unei cereri de ntrerupere cintr (CINTR) va analiza coninutul
registrului RICS i ieirile PRIA.
Dac cererea din RCI cu prioritatea cea mai mare, indicat de PRIA, poate ntrerupe cererile n
curs de servire (are o prioritate mai mare dect acestea), se va genera o cerere de ntrerupere pe linia
cintr.
Programul AHPL de descriere a seciunii CINTR este descris pe baza organigramei din Fig
8.7.
RICS
0
___
PRIA
0
(RCI RMI)
___
PRIA
1
(RCI RMI)
RICS
1
0 1
1 0
0
0
1
1
RICS
6
___
PRIA
6
(RCI RMI)
___
PRIA
7
(RCI RMI)
RICS
7
0 1
1 0
0
0
1
1
____
cintr
Figura 8.7
Organigrama pentru generarea cererii de ntrerupere CINTR
UNIT: CINTR
INPUTS: A[A] ; B[A]
OUTPUTS: cintr
8-16
2.k 1
4. k k+1
5. (k < A)/(3)
6. cintr = /C
0:k
END
sau sub forma compact :
UNIT: CINTR
INPUTS: A [A] ; B[A]
OUTPUTS: cintr
1 : 1 2 : 0 1 : 1
. 2
=
A A A
B C C
3. cintr = /(A C)
END
n descrierea AHPL s-a inut seama de faptul c vectorul A corespunztor lui PRIA (RMI),
poate avea la un moment dat o singur component egal cu 1.
Funcia logic a cererii de ntrerupere cintr este:
8.2.5 Descrierea unitii logice combinainale ADRI
Dup primirea unei cereri de ntrerupere interne, externe nemascabil sau externe mascabile,
unitatea central de prelucrare va asigura legtura cu rutina de tratare a ntreruperii pe baza adresei
furnizate de sistemul de ntreruperi prin intermediul unitii logice combinaionale ADRI.
Organigrama unitii logice combinaionale ADRI este prezentat n Fig 8.8.
0
o 0
B A 1.C =
) B / ( A 3.C : 0
k k
k =
0
0
B 1.C =
7 1 0
7
1 0
1
0
0
RICS .... RICS RICS ) RMI (RCI PRIA ..
.. RICS RICS ) RMI (RCI PRIA RICS ) RMI (RCI PRIA cintr
+
+ + =
8-17
RICS
0
nu
da
ip ADRI = 0001
nu
da
id ADRI =0010
nu
da
inm ADRI = 0011
nu
da
ADRI = 0100
RICS
1
nu
da
ADRI = 0101
RICS
2
nu
da
ADRI = 0110
RICS
3
nu
da
ADRI = 0111
RICS
4
nu
da
ADRI = 1000
RICS
5
nu
da
ADRI = 1001
RICS
6
nu
da
ADRI = 1010
RICS
7
nu
da
ADRI = 1011
Figura 8.8
Organigrama unitii logice combinaionale ADRI
Ecuaiile logice ale ieirilor unitii logice combinaionale ADRI se obin din organigrama prezentat.
De fapt, funciile logice ADRI
i
trebuie sintetizate considerndu-le ca un sistem de funcii
logice. Dup ce adresa furnizat de ADRI se ncarc n AM (pas 96) trebuie s se anuleze bistabilul de
cerere de ntrerupere corespunztor ip,id,inm,intr. tergerea se face utiliznd unitatea logic
combinaional .
PRIL
0:3
= PRIA
0:3
(ip,id,inm,intr).
8.2.6 Descrierea unitii de comand a sistemului de ntreruperi UCSI
UCSI trebuie s realizeze funciile de dialog cu unitatea central de prelucrare i controlul
transferurilor ntre registrele sistemului de ntreruperi. Se vor asocia sistemului de ntreruperi
urmtoarele porturi de intrare ieire:
) RICS RICS RICS RICS RICS RICS RICS RICS
RICS RICS RICS RICS RICS RICS
RICS 2 RICS RICS RICS RICS RICS ( inm id ip inm id ip ip ADRI
7
6 5 4 3 2 1 0
5
4 3 2 1 0
3
1 0
1
0
0
+
+ + + + =
8-18
0FCH - port de intrare/ieire pentru citirea, respectiv nscrierea registrului de mati
RMI;
0FDH - port de intrare/ieire pentru citirea registrului de cereri n curs de servire
RICS, i tergerea ultimului bit trecut n 1 din RICS.
Organigrama general de funcionare a unitii de comand a sistemului de ntreruperi este
prezentat n Fig 8.9.
Programul AHPL de descriere a funcionarii UCSI este urmtorul:
MODULE: Sistemul de ntreruperi al calculatorului didactic
MEMORY: RCI[8];RMI[8];RICS[8]
COMBUS : MAG[16]
1. (2,5)
/* secvena paralel de dialog cu unitatea central de prelucrare (pas 2) i prelucrare cereri (pas 5) */
/* FC , FD sunt semnale asociate decodificatorului de adrese care sunt puse n coresponden cu
adresele 0FCH respectiv 0FDH*/
3. RMI * FC MAG;
RICS * (FD PRIA(RICS)) 0
/* se ncarc registrul de mti */
/* se terge cererea de ntrerupere ce a fost servit */
4.MAG = (RMI!RICS)*(FC,FD)
/* se citete registrul de mti sau de cereri de ntrerupere n curs de servire */
*/ se ateapt luarea n considerare a unei cereri de ntrerupere
6. RICS * PRIA(RCIRMI) 1;
/* se transfer n RCS cererea cu prioritatea cea mai mare i se terge din RCI */
cintr : OUTPUTS
cerint ;.. cerint inm; id; ip; ai; ; sie ; cie AIE[8]; : INPUTS 7 0
); 2 , 4 , 3 /( ) ), ( ), ( ( . 2 FD FC cie sie FD FC cie FD FC sie
2) )/(3.1, sie (sie, 1 . 3
)/(4,2) cie (cie,
)/(5) ai ( . 5
0; ) RMI PRIA(RCI * RCI
8-19
*/ se ateapt stabilirea legturii cu rutina de tratare a ntreruperii */
END SEQUENCE
.
. descris anterior
.
END
*/ U.L.C. de stabilire a cererii cu prioritatea cea mai mare din RCI (registrul cererilor de ntrerupere)
UNIT:PRIA(RICS)
.
. descris anterior
.
END
*/ U.L.C. de stabilire a cererii cu prioritatea cea mai mare din RCS (registrul cererilor n curs de
servire)
UNIT:PRIA(ip,id,inm,intr)
.
. descris anterior
.
END
.
. descris anterior
.
END
*/ U.L.C. de generare a unei cereri de ntrerupere */
UNIT: ADRI(ip;id;inm;RICS)
.
. descris anterior
.
END
MAG * actadri = ADRI
END
*/ U.L.C. de generare a adresei celulei capcan corespunztoare cererii cu prioritatea cea mai mare
___
UNIT: PRIA(RCIRMI)
*/ U.L.C. de stabilire a cererii cu prioritatea cea mai mare ntre ip,id,inm,intr
___
UNIT: CINTR(PRIA(RCIRMI);RICS)
)/(7,5) ai (ai, . 7
8-20
sie (FC FD)
da
7.
6.
5.
4.
3.
2.
1.
da
da
nu
nu
nu
RMIMAG
RCI*PRIA(RCIRMI)0
___
RICS*PRIA(RCIRMI)1
RICS*PRIA(RICS)0
FC
sie
cie (FC FD)
da
da
da
nu
nu
nu
MAG = RMI MAG = RICS
FC
cie
da
da
nu
nu
ai
ai
Figura 8.9
Organigrama de funcionare a unitii de comand a sistemului de ntreruperi (UCSI)
8-21
8.3 Programarea operaiilor de intrare / ieire n ntreruperi
n paragraful 8.1 s-a argumentat pentru necesitatea realizrii interaciunii i sincronizrii prin
ntreruperi, ca o modalitate important pentru creterea productivitii sistemului. Aceast cretere a
productivitii este direct proporional cu cantitatea de date transferate ntre unitatea central de
prelucrare i echipamentul periferic. Programele de intrare/ieire n cazul interaciunii prin ntreruperi
sunt ns mult mai complexe dect n cazul interaciunii n bucla de ateptare. Aceast complexitate
suplimentar ntr-un sistem ce funcioneaz n ntreruperi, se datoreaz faptului c n paralel cu
operaiile de transfer cu echipamentul periferic se execut alte sarcini de prelucrare specificate de
utilizator. Din aceste considerente rezult c eficiena utilizrii mecanismului ntreruperilor va fi
dovedit n special la transferul unor nlnuiri de blocuri de date cu echipamentul periferic ce
funcioneaz n mod bloc. O modalitate de a influena un program de I/E pentru un echipament
periferic este de a partiiona funciile acestuia ntr-o rutin de iniiere a transferului (Iniiator) i o
rutin de servire a ntreruperilor care va controla transferul ntregului bloc (Continuator). Iniiatorul
execut funciile de validare i iniiere a cererilor lansate de programul utilizator spre Programul de
I/E. Programele utilizator i Programul de I/E (cu cele dou seciuni ale sale, Iniiator i Continuator),
fiind programe independente, este necesar definirea unui mod de comunicaie "standard" ntre
acestea. O soluie de a implementa aceast comunicaie const n utilizarea unui Bloc de Control
Transfer (BCT). O structur posibil pentru un BCT este prezentat n Tabelul 8.3 . BCT trebuie s
conin informaii privind caracteristicile transferului i starea transferului n orice moment de timp.
Tabelul 8.3 Structura Blocului de Control Transfer (BCT)
NUME FUNCTIE DESCRIERE FUNCTIE
Stare Acest cuvnt conine starea transferului I/E (n curs de desfurare, terminat,
aparaia unor erori).
Cod operaie Specific tipul operaiei cerute (citire, scriere, poziionare etc.) - nu este necesar
pentru echipamentul periferic cu o singur operaie.
Adresa bloc Adresa blocului (zonei) denumire ce constituie sursa/destinaia transferului.
Contor cuvinte Numrul de cuvinte transferate efectiv.
Adresa terminare Adresa rutinei furnizate de programul utilizator, ce va fi executat de continuator
dup terminarea transferului
Succesiunea operaiilor pentru un realizarea unui transfer de I/E este:
Programul utilizator pregtete BCT n memorie i apeleaz Iniiatorul furnizndu-i
adresa acestuia;
Iniiatorul valideaz transferul i eventual iniiaz operaia specificat n BCT iar apoi
red controlul Programului chemtor pentru a continua cu alte prelucrri;
Continuatorul (rutina de servire a ntreruperii) controleaz n continuare transferul
ntregului bloc;
La terminarea transferului, Continuatorul red controlul rutinei de terminare a crei
adres este furnizat de utilizator.
Rutina de servire a ntreruperii trebuie s ndeplineasc urmtoarele funcii:
Salvarea contextului programului ntrerupt pentru a putea fi restaurat dup tratarea
ntreruperii;
Determinarea sursei de ntrerupere dac pe acelai nivel sunt mai multe echipamente
periferice i stabilirea ordinii de tratare a acestora;
Activarea sistemului de ntreruperi;
8-22
Transferul datelor de la sau la echipamentul periferic;
Transferarea controlului rutinei specificat de programul chemtor la terminarea
transferului;
Refacerea contextului i revenirea n programul ntrerupt.
n figura 8.10 se arat organigramele generale pentru Iniiator i Continuator. Desigur exist
multe alte posibiliti de a realiza aceste programe.
INITIATOR
(CALL din programul Principal)
Validare
transfer
Init BCT
actualizare stare
(transfer in curs de desfasurare)
Cheama rutina de determinare transfer
furnizata de program chemator
Semnalizeaza eroare
Stare op3
Return
Return
EI
Stare op2 Stare op1
Start
3 2 1
nu da
DCD op
Figura 8.10 a)
Organigrama seciunii de iniiere a transferului
n figura 8.10a), s-a prezentat organigrama seciunii de iniiere a transferului. S-a considerat c
n BCT se specific operaia ce trebuie efectuat. Aceasta este necesar dac echipamentul periferic
cruia i s-a asociat BCT poate efectua diferite operaii la diferite momente de timp sau dac acelai
BCT se asociaz unui grup de echipamente periferice.
8-23
da
CONTINUATOR
(activat prin intrerupere)
Transfer in
curs de
desfasurare?
actualizeaza starea
Cheama rutina de
determinare transfer
furnizata de
program chemator
Actualizeaza stare
(eroare transfer )
Refacere stare
Return
Return
Return
EI
Comanda
transfer
urmator
Citeste date
Determina sursa intreruperii
Salveaza starea
nu
nu
nu
da
da
gata transfer
bloc?
Activeaza sistemul de intreruperi
ET (optional)
gata transfer
bloc?
Cheama rutina de
determinare transfer
furnizata de
program chemator
Fig. 8.10 b)
n figura 8.10 b), prin linie punctat s-a evideniat faptul c activarea sistemului de ntreruperi
se poate face imediat dup salvarea strii i determinarea sursei de ntrerupere sau la sfritul execuiei
rutinei de tratare, caz n care aceasta nu poate fi ntrerupt de o alt cerere extern, indiferent de
prioritate. Pentru a exemplifica principiile de scriere a unor programe de I/E n ntreruperi se va scrie,
n continuare, un program pentru cititorul de band de hrtie. Pentru a fixa nivelele de ntrerupere pe
care se vor cupla cererile de la echipamentele periferice trebuie s se in seama de urmtoarele
considerente:
echipamentele periferice critice n sensul c produc o eroare de ritm dac datele nu sunt
preluate/furnizate imediat vor fi cuplate pe nivele cu prioritate mai mare; ex. transfer
programat n mod caracter cu o band magnetic;
8-24
n general echipamentele periferice de intrare vor avea prioritate fa de cele de ieire;
dac n sistem exist echipamente periferice necritice cu un mare volum de date
transferate la vitez mare i echipamente periferice lente cu volum mic de date
transferate, acestea din urm vor fi cuplate pe nivele de prioritate mai mare fa de
primele. n felul acesta se asigur posibilitatea ca i aceste echipamente periferice lente
s fie tratate de unitatea central de prelucrare;
interfeele cu o complexitate mai mare, cu memorii tampon locale etc, vor fi cuplate n
general pe nivele cu prioritate mai mic.
Asignarea nivelurilor de ntrerupere pentru calculatorul didactic este prezentat n tabelul 8.4
Tabelul 8.4 Asignarea nivelelor de ntreruperi pentru calculatorul didactic
Nivel Echipament periferic cuplat la acest nivel
0 - neutilizat
1 - neutilizat
2 - modulul de acces direct la memorie
3 - cititorul de band de hrtie
4 - interfa serial, seciunea de intrare
5 - interfa serial, seciunea de iesire
6 - interfa pentru imprimanta serial
7 - neutilizat