Vous êtes sur la page 1sur 15

5.

STRATEGII DE INTRARE/IEIRE

5.1. Spaiul dispozitivelor de intrare/ieire


Accesarea porturilor:
a) Ca porturi propriu-
propriu-zise
- cicluri ma
main specifice
- semnale distincte pe magistrala de control: IOR i IOW

IN d, port; (d) (port)


OUT port, s ; (port) (s)

- d sau s - acumulatorul implicit sau dedicat


- harta porturilor este mult mai mic dect harta memoriei
- moduri de adresare foarte restrictive pentru porturi:
direct
indirect prin registru
Acces rapid la porturi

Consum coduri de instruc


instruciuni
Consum terminale de pe magistrala de control
Arhitectura microprocesoarelor Cap.5 1
Corneliu BURILEANU
b) Ca loca
locaii de memorie

- cicluri ma
main de acces n memorie

- semnale pe magistrala de control folosite pentru accesul n memorie: MEMR


i MEMW

Extind toate caracteristicile transferurilor de date asupra instruc


instruciunilor I/O

Extind utilizarea porturilor i n cadrul instruc


instruciunilor de prelucrri de date
(numai CISC)

Consum spa
spaiu din harta memoriei

Timp mare de acces (formatul instruc


instruciunilor, modurile de adresare - numai
CISC)

Arhitectura microprocesoarelor Cap.5 2


Corneliu BURILEANU
5.2. Tehnici de intrare/ieire uzuale

Sunt tehnici de sincronizare a microcalculatorului cu echipamentele


echipamentele periferice conectate prin
intermediul porturilor

Tehnici A. Sincrone cu programul curent


B. Asincrone cu programul n curs de desf
desfurare

A. Interogarea continu (tehnica polling


polling)

Arhitectura microprocesoarelor Cap.5 3


Corneliu BURILEANU
Exemplu:

Start1: IN AL, PORT1


SHL AL, 1
JNC Start1
OUT PORT1, AX
Start2: IN AL, PORT2
SHL Al, 1
JNC Start2
OUT PORT2, AX

Avantaje:
- Nu implic hardware suplimentar.
suplimentar.
- Comunicarea cu perifericele se face sincron cu programul curent.
curent

Dezavantaje:

- Interogarea consum timp.


timp.
- Se pierd posibile cereri de comunicare cu perifericele.

Arhitectura microprocesoarelor Cap.5 4


Corneliu BURILEANU
B. ntreruperi

Cerere de ntrerupere:
ntrerupere: semnal trimis unui terminal dedicat al microprocesorului prin
care un periferic (prin intermediul unui port) cere acces la resursele
resursele sistemului.

Rspuns la o cerere de ntrerupere:


ntrerupere: o secven
secven de ac
aciuni pe care microprocesorul o
declan
declaneaz prsind programul normal de func
funcionare.
ionare.

Rutin de deservire a unei ntreruperi:


ntreruperi: un
un program prestabilit, aflat la o adres prestabilit,
prestabilit,
prin care microprocesorul rspunde la o anumit cerere de ntrerupere formulat de un
anumit periferic.
periferic
Arhitectura microprocesoarelor Cap.5 5
Corneliu BURILEANU
Rspunsul la o cerere de ntrerupere (CISC):

1. (SP) (SP) - 2
((SP) + 1) ((SP)) (F)

2. (SP) (SP) - 2
((SP) + 1) ((SP)) (PC)

3. for i = 1 to n do
(SP) (SP) - 2
((SP) + 1) ((SP)) (r16i)

4. IF 0

5. (PC) adr

6. la revenirea n programul curent se recupereaz din


stiv toate informa
informaiile

Arhitectura microprocesoarelor Cap.5 6


Corneliu BURILEANU
5.3. ntreruperi caracteristice microprocesoarelor de uz general

a) Accesul direct la memorie:

- are prioritatea maxim


- ateapt numai terminarea ciclului ma
main curent

Arhitectura microprocesoarelor Cap.5 7


Corneliu BURILEANU
b) ntreruperi nemascabile:
nemascabile:

- este formulat pe un terminal specializat (NMI


NMI)

- nu poate fi invalidat de ctre utilizator

- ca prioritate,
prioritate, urmeaz
urmeaz dup cererea de acces direct la memorie

- ateapt terminarea instruc


instruciunii curente

- urmeaz algoritmul general de rspuns la o cerere de ntrerupere

- rutina de deservire a ntreruperii are o adres prestabilit

Arhitectura microprocesoarelor Cap.5 8


Corneliu BURILEANU
c) ntreruperi mascabile:

- este formulat pe un terminal specializat (INT


INT)

- poate fi invalidat de ctre utilizator (fanion / fanioane de validare a ntreruperilor)

- ca prioritate,
prioritate, urmeaz
urmeaz dup ntreruperile nemascabile

- ateapt terminarea instruc


instruciunii curente

- urmeaz algoritmul general de rspuns la o cerere de ntrerupere

- rutina de deservire a ntreruperii are o adres care depinde de modul de rspuns


rspuns
prestabilit:
modul 0
0 perifericul stabile
stabilete adresa dar i instruc
instruciunea de apel a rutinei
de deservire a ntreruperii
modul 1
1 adresa rutinei de deservire a ntreruperii este prestabilit
modul 2
2 ntreruperi vectorizate

Arhitectura microprocesoarelor Cap.5 9


Corneliu BURILEANU
ntreruperi vectorizate

Vector de ntrerupere:
ntrerupere: adresa
adresa complet a unei rutin
rutinee de deservire a ntreruperii
ntreruperii

Un periferic trimite, indirect, un vector de ntrerupere dintr-


dintr-o mul
mulime de vectori
posibili, alegnd astfel o rutin de deservire din mai multe rutine poten
poteniale

Se utilizeaz adresarea indirect cu memoria folosind o tabel cu vectori de ntrerupere

Caracteristici:
ntrerupere: m bytes
- Mrimea vectorului de ntrerupere:

informaiei furnizat de periferic (tip


- Dimensiunea informa tip): n bi
bii

ntrerupere m x 2n bytes
- Mrimea tabelei cu vectori de ntrerupere:

- Localizarea tabelei cu vectori de ntrerupere n harta memoriei

Arhitectura microprocesoarelor Cap.5 10


Corneliu BURILEANU
Exemplu:

vector_de_
vector_de_ntrerupere = ((I) tip 0 + 1) ((I) tip 0)

Vectorul de ntrerupere are 2 octe


octei
tip are 7 bi
bii
Tabela cu vectori de ntrerupere 256B
Localizarea tabelei este la alegerea utilizatorului

Arhitectura microprocesoarelor Cap.5 11


Corneliu BURILEANU
5.4. Tipuri de ntreruperi pentru P compatibile Intel x86 n modul real

Vectorul de ntrerupere are 4 octe


octei
tip are 8 bi
bii
Tabela cu vectori de ntrerupere 1kB
Localizarea tabelei este prestabilit
Arhitectura microprocesoarelor Cap.5 12
Corneliu BURILEANU
INT [tip] ; (SP) (SP) - 2
((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (F)
(IF) 0
(TF) 0
(SP) (SP) - 2
((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (CS)
if tip then
(CS) (4 tip + 3) (4 tip + 2)
else
(CS) (0000FH) (0000EH)
(SP) (SP) - 2
((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (IP)
if tip then
(IP) (4 tip + 1) (4 tip)
else
(IP) (0000DH) (0000CH)
(0000CH

Arhitectura microprocesoarelor Cap.5 13


Corneliu BURILEANU
INTO ; if (OF) = 1 then
(SP) (SP) - 2
((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (F)
(IF) 0
(TF) 0
(SP) (SP) - 2
((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (CS)
(CS) (00013H) (00012H)
(SP) (SP) - 2
((SS) 0H + (SP) +1) ((SS) 0H + (SP)) (IP)
(IP) (00011H) (00010H)

IRET ; (IP) ((SS) 0H + (SP) +1) ((SS) 0H + (SP))


(SP) (SP) + 2
(CS) ((SS) 0H + (SP) +1) ((SS) 0H + (SP))
(SP) (SP) + 2
(F) ((SS) 0H + (SP) +1) ((SS) 0H + (SP))
(SP) (SP) + 2

Arhitectura microprocesoarelor Cap.5 14


Corneliu BURILEANU
____________________________________________________________________________________

Tipul Adresa vectorului Func


Funcia implicit
ntreruperii de ntrerupere
__________________________________________________________________________
__________________________________________________________________________
0 00H 03H Cerere de ntrerupere generat
de mpr
mprire la 0
0
1 04H 07H Cerere de ntrerupere pentru
func
funcionare pas cu pas
2 08H 0BH Asociat obligatoriu ntreruperii
hard nemascabile
3 0CH 0FH instruciunii INT cu
Asociat instruc
format minim (un octet)
4 10H 13H instruciunii INTO
Asociat instruc
__________________________________________________________________________

Arhitectura microprocesoarelor Cap.5 15


Corneliu BURILEANU