interrupciones y ciclo de dma
Post on 26-Feb-2018
233 Views
Preview:
TRANSCRIPT
-
7/25/2019 Interrupciones y Ciclo de DMA
1/9
Interrupciones y Ciclo
de DMA
-
7/25/2019 Interrupciones y Ciclo de DMA
2/9
Estructura
de
interrupciones
del
8086
/
8088
Hay
tres
clases
de
interrupcin
:
por
hardware,
porsoftware
e
internas
(a
las
dos
ltimas
tambin
selas
llama
"
excepciones
")
.
Veremos
primeramente
el
caso de
interrupciones
por
hardware
:
el
8086
/
8088
tiene
dos
entradas
depeticin de interrupcin
: NMI e INTR
y una dereconocimiento (INTA)
. La gran mayora de lasfuentes
de
interrupcin
se
conectan
al
pin
INTR,
ya
que
esto
permite
enmascarar
las
interrupciones
(elNMI
no)
.
Para
facilitar
esta
conexin
,
se
utiliza
elcircuito integrado controlador de
interrupciones
,que
tiene
el
cdigo
8259
A
.
-
7/25/2019 Interrupciones y Ciclo de DMA
3/9
Existen
algunas
interrupciones
predefinidas
,
de
usoexclusivo del microprocesador
, por
lo que no esrecomendable utilizar
estos tipos de interrupcin
para
interrupciones
por
hardware
o
software
.
Tipo
0:
Ocurre
cuando
se divide
por
cero o elcociente
es
mayor que el valor
mximo
que
permite
el
destino
.
Tipo
1:
Ocurre
despus
de
ejecutar
unainstruccin
si
TF (Trap Flag) vale 1.
Estopermite
la
ejecucin
de
un
programa
paso
apaso
, lo que
es
muy
til
para la
depuracin
deprogramas
.
Tipo
2:
Ocurre
cuando
se
activa
la
pata
NMI
(
interrupcin
no enmascarable
).
-
7/25/2019 Interrupciones y Ciclo de DMA
4/9
Tipo
3:
Existe
una
instruccin
INT que
ocupa
un
slo
byte,que
es
la
correspondiente
a
este
tipo
.
En
los
programasdepuradores
(debuggers) (tales
como
Debug
,
CodeView
,
Turbo Debugger
, etc.), se
utiliza
esta
instruccin
como
puntode
parada
(para
ejecutar
un
programa
hasta
una
determinadadireccin
,
fijada
por
el
usuario
del
depurador
, se
inserta
estainstruccin
en
la
direccin orrespondiente
a la
parada
y selanza
la
ejecucin
.
Cuando
el CS:IP
apunte
a
esta
direccin
se
ejecutar
la INT 3, lo que
devolver
el control delprocesador
al
depurador
).
Debido
a
esto
,
si
se le
ordena
aldepurador
que
ejecute
el
programa
hasta
una
determinadadireccin
en
ROM (
memoria
de
slo
lectura
) (
por
ejemplo
,para
ver
cmo
funciona
una
subrutina
almacenada
en
dicha
memoria
), la
ejecucin
seguir
sin
parar
all
(
ya
que lainstruccin
INT 3 no se
pudo
escribir
sobre
el
programa
).
Enel 80386, con
su
elaborado
hardware de
ayuda
para ladepuracin
, se
puede
poner
un
punto
de
parada
en
ROM.
-
7/25/2019 Interrupciones y Ciclo de DMA
5/9
Tipo
4:
Ocurre
cuando
se
ejecuta
la
instruccin
deinterrupcin
condicional
INTO y el flag OF (Overflow
Flag) vale 1.
Los
tipos
5 a 31 (1F
en
hexadecimal)
estn
reservadospara
interrupciones
internas
(
tambin
llamados
"
excepciones
") de
futuros
microprocesadores
.
Prioridad
entre
diferentes
fuentes
deinterrupcin
:
1) Error de
divisin
, INT
n
(no
enmascarable
), INTO.
2) NMI (no
enmascarable
).3) INTR (
enmascarable
mediante
IF).
4)
Ejecucin
paso
a
paso
(
enmascarable
mediante
TF).
-
7/25/2019 Interrupciones y Ciclo de DMA
6/9
Ciclo de DMA
El
ciclo
de
DMA
es
un
poco
ms
complicado
ya
que
tanto
la
funcin
delectura
como
de
escritura
son
realizados
en
un
mismo
ciclo
. El
bus
escontrolado
por
el
controlador
DMA
y
no
por
el
8088
Los
ciclos
de
DMA
no
son
iniciados
ni
por
el
8088
ni
por
el
controlador
deDMA
sino
por
una
peticin
de
un
adaptador
de
interfase
.
El
bus
del
sistema
posee
tres
seales
:
DRQ
1
,
DRQ
2
y
DRQ
3
producidas
porel
controlador
DMA
. Un
ciclo
de
DMA
puede
ser
iniciado
al
poner
en
altocualquiera
de
estas
seales
. La
primera
indicacin
en
el
sistema
que
unapeticin
ha
sido
aceptada
y
que
un
ciclo
de
DMA
ha
iniciado
es
cuando
la
seal
AEN
del
bus
es
activada
.
Luego
de
activarse
la
seal
AEN,
una
de
cuatro
posibles
seales
(DACK
0
,DACK
1
,
DACK
2
,
DACK
3
)
es
activada
. Estas
seales
le
indican
al
adaptadorde
interfase
que
canal
de
DMA
est
siendo
atendido
.
-
7/25/2019 Interrupciones y Ciclo de DMA
7/9
-
7/25/2019 Interrupciones y Ciclo de DMA
8/9
CuandoelcontroladorDMAnoestejecutandounciclodeDMA,seencuentraenloseconocecomounestadodenoactividad,ejecutandocontinuamente ciclos S0mientrasesperaporpeticionesdeDMA.
Cuandounapeticinesdetectada,elcontroladorenvaunasealal8088queledicequedejeelcontroldelbusal siguiente tiempo conveniente. El controlador espuestoenelestado S0el cualbuscacontinuamenteunarespuestadel8088queledigaqueelbuseslibreyquepuedeserutilizadoparainiciarelcicloDMA. EstasealseconocecomoALDAyalrecibirlaelcontroladorDMAentraenunestadoS1marcandoeliniciodelcicloDMA.
-
7/25/2019 Interrupciones y Ciclo de DMA
9/9
top related