Documente Academic
Documente Profesional
Documente Cultură
8.
Obiective:
n acest capitol se trateaz, la nivel de principii, luccrul n ntreruperi. n mod efectiv se arat
modalitile de realizare a nreruperilor pentru calculatoarele numerice i se prezint detaliat realizarea
unui sistem de ntreruperi propriu calculatorului didactic. De asemenea, n acest capitol, se urmrete
nelegerea principiilor de programare a operaiilor de I/E utiliznd sistemul de ntreruperi al
calculatorului.
dac sunt n curs de tratare alte cereri, ceea ce impune ordonarea dup o anumit schem
de prioriti a nivelurilor de ntrerupere;
pe un nivel se pot conecta mai multe cereri, subniveluri de acceai prioritate. n acest caz
trebuie s existe posibilitatea identificrii fiecrui nivel i subnivel;
deoarece prin mecanismul ntreruperilor este posibil execuia concurent a mai multor
programe, se impune necesitatea protejrii fa de ntreruperi a unor secvene de cod
main indivizibile, denumite seciuni critice. Aceasta se poate realiza prin dezactivarea
global sau individual (mascare) a ntreruperilor pe diferite durate de timp;
sistemul de ntreruperi trebuie prevzut cu faciliti de salvare i restaurare a contextului
programului ntrerupt, ntr-o manier ct mai eficient;
trebuie prevzut posibilitatea unui dialog cu subansamblele (echipamentele) care au
generat cereri de ntrerupere privind tratarea cererii;
timpul de rspuns al sistemului de ntreruperi (SI), definit ca intervalul dintre lansarea
unei cereri de ntrerupere spre sistemul de ntreruperi i momentul execuiei primei
instruciuni din secvena de prelucrare efectiv a cererii, trebuie s fie ct mai mic.
Dup modul n care se face activarea secvenei (a rutinei) de tratare a unei ntreruperi se disting
urmtoarele tipuri de sisteme de ntreruperi:
nevectorizat;
vectorizat.
Sistemele de ntreruperi nevectorizate sunt acelea n care toate cererile de ntrerupere foreaz
transferarea controlului la o locaie fix denumit celul capcan, unde se afl punctul de intrare (sau
legtura cu rutina de tratare) n programul de tratare a tuturor ntreruperilor. Sursa de ntrerupere i
activarea rutinei specifice se determin prin citirea unui registru de stare, denumit registrul cererilor de
ntrerupere (sau a mai multor registre).
Dac exist mai multe cereri prioritatea de servire a acestora se stabilete prin program. Timpul
de rspuns ntre o cerere i lansarea n execuie a rutinei specifice de tratare poate fi destul de mare la
acest tip de sistem de ntrerupere.
Au avantajul unei complexiti reduse a resurselor hardware necesare, dar tratarea unor cereri
care apar n timpul tratrii altor cereri este dificil.
Sistemele de ntreruperi vectorizate sunt acelea n care legtura dintre cereri i rutinele de tratare
se realizeaz prin intermediul unui vector de adrese (denumite i celule capcan) cu o component
direct pentru fiecare nivel. Fiecare component conine adresa, sau informaii privind calculul adresei
rutinei de tratare astfel c printr-un salt indirect prin aceast locaie se iniiaz execuia rutinei de tratare.
Sistemul de ntreruperi furnizeaz spre unitatea central de prelucrare codul nivelului care
trebuie tratat n acel moment, cod ce va fi utilizat pentru selecia componentei asociate din vectorul de
adrese al rutinelor de tratare.
Prioritatea ntre niveluri este stabilit de ctre sistemul de ntreruperi la nivel fizic, timpul de
rspuns al sistemului este mai mic dect n cazul precedent.
n practic se utilizeaz frecvent o soluie ce combin avantajele i dezavantajele celor dou
tipuri de sisteme de ntreruperi i anume sisteme vectorizate pe niveluri i nevectorizate pe subniveluri.
8.2
Saltul indirect prin aceste celule la rutina de tratare a ntreruperii, asociat cu prioritatea cea mai
mare recunoscut de unitatea central de prelucrare, este asigurat de secvena din unitatea central de
prelucrare ce va fi introdus n acest scop. Secvena din unitatea central de prelucrare se realizeaz pe
baza informaiilor privind cererile interne, inm i intr i pe baza codului furnizat de sistemul de
ntreruperi la activarea unei cereri pe linia cintr.
Pentru a avea posibilitatea activrii sau dezactivrii (mascrii) ntreruperilor pe linia cintr se va
prevedea un indicator I n registrul de indicatori IND care va specifica starea de activare/dezactivare a
ntreruperilor. De asemenea, se va extinde setul de instruciuni main a calculatorului didactic cu
instruciunile:
EI
- activeaz sistemul de ntreruperi, prin trecerea n 1 a indicatorului I;
DI
- dezactiveaz sistemul de ntreruperi, prin trecerea n 0 a indicatorului I;
INT - genereaz, prin program, o cerere de ntrerupere.
8.2.2 Modificarea secvenei de comand a unitii centrale
Pentru a actualiza secvena de control ce realizeaz citirea interpretarea instruciunilor n vederea
introducerii sistemului de ntreruperi trebuie avute n vedere urmtoarele aspecte:
completarea primitivelor funcionale ale unitii centrale de prelucrare;
descrierea secvenei de luare n considerare, interpretare i preluare a cererilor de
ntrerupere;
codificarea noilor instruciuni introduse;
descrierea secvenei de citire/interpretare i execuie a noilor instruciuni introduse .
Aa cum s-a menionat, pentru a permite activarea/dezactivarea ntreruperilor externe mascabile,
primitivele funcionale ale calculatorului didactic se completeaz cu un nou indicator I i cu instruciuni
de poziionare explicit a acestuia.
I=0
ntreruperile sosite pe linia cintr sunt inhibate,
I=1
ntreruperile sosite pe linia cintr sunt luate n considerare de unitatea central de prelucrare.
Unitatea de comand a calculatorului didactic va fi prevzut cu bistabili necesari pentru
memorarea cererilor de ntrerupere i anume:
intr - ntrerupere extern mascabil, este scris de sistemul de ntreruperi i interpretat de unitatea
central de prelucrare,
=
0 nu exist cerere de ntrerupere de la sistemul de ntreruperi,
=
1 exist cerere de ntrerupere de la sistemul de ntreruperi, cintr = 1.
ai
- achitare ntrerupere este scris de unitatea central de prelucrare ca recunoatere a unei cereri
de ntrerupere extern mascabil. Este utilizat de unitatea de comand a sistemului de
ntreruperi,
=0
unitatea central de prelucrare nu a recunoscut sau a terminat luarea n
considerare a unei cereri de ntrerupere,
=1
unitatea central de prelucrare a recunoscut o cerere de ntrerupere.
inm - ntrerupere extern nemascabil - este scris de cinm i interpretat de unitatea central de
prelucrare,
=0
nu exist o tranziie 0 - 1 a liniei cintr,
=1
exist o cerere extern nemascabil, cinm - 1.
Obs: Bistabilul imn trece n 1 la tranziiile din 0 n 1 ale cererii cimn (cererea este activ pe front).
id
-ntrerupere de depire n unitatea aritmetic i logic, este scris i interpretata de unitatea
central de prelucrare,
=0
nu exist o tranziie 0 - 1 a indicatorului D,
=1
exist o cerere de ntrerupere datorat depirii n unitatea aritmetic i logic,
indicatorul D a avut o tranziie din 0 n 1 .
ip
-ntrerupere prin program, este scris de unitatea central ca urmare a execuiei unei instruciuni
INT, interpretat de unitatea central,
=0
nu s-a executat o instruciune INT,
=1
exist o cerere de ntrerupere datorate execuiei instruciunii INT.
Bistabilii intr, imn, id, ip sunt anulai selectiv (trecui n 0) imediat dup ncrcarea n AM a
adresei celulei capcan corespunztoare, ca urmare a lurii n considerare a cererii de ntrerupere
respective.
n continuare se va dezvolta secvena de analiz, interpretare a cererilor de ntererupere interne,
externe nemascabile i externe mascabile de ctre unitatea central de prelucrare.
Modul de analiz al cererilor de ntrerupere de ctre unitatea central se prezint n Fig
8.1,evideniindu-se urmtoarele aspecte:
prioritatea ntre ntreruperile interne, ntreruperea extern nemascabil inm i
ntreruperile externe mascabile intr este stabilit de ordinea de testare;
ntreruperile interne i extern nemascabil nu pot fi dezactivate prin execuia unei
instruciuni DI (I - 0);
la recunoaterea unei cereri de ntrerupere pe intr, unitatea central trimite spre exterior
un semnal de achitare ntrerupere, ai, pentru a semnala sistemului de ntrerupere c s-a
luat n considerare cererea de ntrerupere i se ateapt codul de identificare al cererii cu
prioritatea cea mai mare (adresa celulei capcan);
pentru ntreruperile interne i extern nemascabil sistemul de ntreruperi asigur adresa
celulei capcan corespunztoare. Unitatea central nu mai trebuie s trimit semnal de
achitare;
la recunoaterea unei cereri de ntrerupere, unitatea central de prelucrare :
salveaz indicatorii de condiii n stiv ;
dezactiveaz ntreruperile externe mascabile (I - 0) ;
salveaz n stiv adresa de rentoarcere n programul ntrerupt ;
transfer controlul rutinei de tratare executnd o secven similar cu JMP indirect
prin celula capcan corespunztoare.
n rutina de tratare, cererile de ntrerupere externe mascabile vor putea fi luate n
considerare numai dup execuia unei instruciuni EI;
trebuie avut n vedere c o rutin de tratare a unei ntreruperi interne s nu conin o
instruciune care genereaz o nou ntrerupere intern, pentru a evita depirea stivei
sistemului i distrugerea programului;
la terminarea tratrii ntreruperii, revenirea n programul ntrerupt se face prin executarea
unei instruciuni IRET care reface indicatorii (deci reactiveaz i sistemul de ntreruperi)
i apoi revine n programul ntrerupt;
n rutina de tratare a unei ntreruperi cauzat de depire n unitatea aritmetic i logic,
trebuie anulat bistabilul D, pentru a permite generarea unor ntreruperi ulterioare datorit
depirii n unitatea aritmetic i logic.
intr.
interna
da
nu
inm
da
nu
SI activat
da
intr
nu
ai 1
1
Salveaza IND
0
Dezactiv
intreruperile
Salveaza CP
salt la rutina
tratare
ai 0
1. SL(SYN(starta))/(1)
2. (inm id, inm id (intr I))/(91,2.2)
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)
Program principal
EI
cintr,inm
ADD
Secventa UCP
Salveaza IND
I
0
Salveaza CP
Initiaza tratare
intrerupere id
Rutina tratare
inm
Reface CP
Reface IND
Recunoastere intr.
Salveaza IND
I
0
Salveaza CP
I=0
Rutina tratare
inm
IRET
Reface CP
Reface IND
I=1
IRET
I=0
Rutina tratare
inm
Reface CP
Reface IND
IRET
instructiuni PP
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.
__
cie
_____
cerint0
_____
cerint1
__
sie
Unitatea
central de
prelucrare a
calculatorului
didactic
___
cintr
MAG[
16]
Sistemul de
ntreruperi
AIE[
8]
_____
cerint7
ai
ip
id
inm
actadri
cinm
cinm
Figura 8.3
Schimbul de informaie ntre
unitatea central de prelucrare, sistemul de ntreruperi i interfeele de I/E.
__
sie
ai
____
cintr
__
cie
AIE
UCSI
____
cintr
____
cintr0
RCI
____
cintr7
Logica
de
prioritati
ip
id
RICS
ADRI
inm
PRI
RMI
actari
MAG
Figura 8.4
Schema bloc a sistemului de ntreruperi
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.
RMIi = 1 va inhiba cererea de ntrerupere de pe linia cerinti corespunztoare.
RCI
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:
descrierea unitii logice combinaionale PRI;
PRIA0 = 1
da
A0
nu
PRIA1 = 1
da
A1
nu
PRIA2 = 1
da
A2
nu
PRIA6 = 1
da
A6
nu
PRIA7 = 1
da
A7
nu
Figura 8.5
Organigrama de alegere a cererii cu prioritatea cea mai mare - PRIA
UNIT:
INPUTS:
OUTPUTS:
1. B0 = A0
2. k 1
PRIA (A)
A [A]
PRIA [A]
4. k k+1
5. (k < A )/(3)
6. PRIA = B
END
sau forma compactat:
UNIT:
INPUTS :
OUTPUTS:
1. B0 = 1
PRIA (A)
A [A]
PRIA [A ]
3.PRIA = A B
END
___
Aceast unitate logic combinaional va avea ca intrri, RCI RMI.
Schema logic, principial, pentru aceast seciune a unitii logice combinaionale este
prezentat n Fig 8.6.
____
RCI0 RMI0
PRIA0
____
RCI1 RMI1
PRIA1
____
RCI2 RMI2
PRIA2
____
RCI3 RMI3
PRIA3
____
RCI6 RMI6
PRIA7
____
RCI7 RMI7
Figura 8.6
Schema logic a unitii PRIA
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.
___
PRIA0(RCI RMI)
___
PRIA1(RCI RMI)
___
PRIA6(RCI RMI)
___
PRIA7(RCI RMI)
RICS6
RICS1
RICS0
RICS7
____
cintr
Figura 8.7
Organigrama pentru generarea cererii de ntrerupere CINTR
UNIT:
INPUTS:
OUTPUTS:
CINTR
A[A] ; B[A]
cintr
1.C 0 = A o B 0
2.k 1
3.C k = A k ( / B 0:k )
4. k k+1
5. (k < A)/(3)
6. cintr = /C0:k
END
sau sub forma compact :
UNIT:
INPUTS:
OUTPUTS:
CINTR
A [A] ; B[A]
cintr
1.C 0 =B 0
da
ip
ADRI = 0001
nu
da
id
ADRI =0010
nu
da
inm
ADRI = 0011
nu
da
RICS0
ADRI = 0100
nu
da
RICS1
ADRI = 0101
nu
da
RICS2
ADRI = 0110
nu
da
RICS3
ADRI = 0111
nu
da
RICS4
ADRI = 1000
nu
da
RICS5
ADRI = 1001
nu
da
RICS6
ADRI = 1010
nu
da
ADRI = 1011
RICS7
nu
Figura 8.8
Organigrama unitii logice combinaionale ADRI
Ecuaiile logice ale ieirilor unitii logice combinaionale ADRI se obin din organigrama prezentat.
ADRI 0 = ip + ip id inm + ip id inm ( RICS0 RICS1 + RICS0 RICS1 RICS2 RICS3 +
RICS0 RICS1 RICS2 RICS3 RICS4 RICS5 +
RICS0 RICS1 RICS2 RICS3 RICS4 RICS5 RICS6 RICS7 )
De fapt, funciile logice ADRIi 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 .
PRIL0:3 = PRIA0: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:
0FCH
RMI;
MEMORY:
RCI[8];RMI[8];RICS[8]
INPUTS :
OUTPUTS :
cintr
COMBUS : MAG[16]
1. (2,5)
/* secvena paralel de dialog cu unitatea central de prelucrare (pas 2) i prelucrare cereri (pas 5) */
2. ( sie ( FC FD ), cie ( FC FD ), sie cie FC FD ) /(3,4,2);
6. RICS * PRIA(RCIRMI) 1;
RCI * PRIA(RCI RMI) 0;
/* se transfer n RCS cererea cu prioritatea cea mai mare i se terge din RCI */
7. (ai, ai)/(7,5)
.
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
*/ U.L.C. de stabilire a cererii cu prioritatea cea mai mare ntre ip,id,inm,intr
___
UNIT: CINTR(PRIA(RCIRMI);RICS)
.
.
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
1.
2.
nu
sie (FC FD)
3.
da
da
nu
nu
FC
4.
RMI
MAG
RICS*PRIA(RICS)
0
da
da
nu
FC
da
MAG = RMI
MAG = RICS
sie
nu
da
cie
nu
nu
5.
ai
6.
da
___
RICS*PRIA(RCI
RMI)
1
RCI*PRIA(RCI
RMI)
0
7.
da
ai
nu
Figura 8.9
Organigrama de funcionare a unitii de comand a sistemului de ntreruperi (UCSI)
8.3
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;
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)
Start
da
Validare
transfer
Init BCT
actualizare stare
(transfer in curs de desfasurare)
Stare op1
Stare op2
Semnalizeaza eroare
DCD op
1
nu
Return
Stare op3
EI
Return
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.
CONTINUATOR
(activat prin intrerupere)
Salveaza starea
Determina sursa intreruperii
Activeaza sistemul de intreruperi
ET (optional)
da
gata transfer
bloc?
da
actualizeaza starea
Transfer in
curs de
desfasurare?
nu
nu
gata transfer
bloc?
da
Cheama rutina de
determinare transfer
furnizata de
program chemator
nu
Citeste date
Comanda
transfer
urmator
Return
Actualizeaza stare
(eroare transfer )
Cheama rutina de
determinare transfer
furnizata de
program chemator
Refacere stare
Return
EI
Return
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;
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