Está en la página 1de 9

Interrupciones y Ciclo de DMA

Estructura de interrupciones del 8086/8088


Hay tres clases de interrupcin: por hardware, por
software e internas (a las dos ltimas tambin se
las llama "excepciones").
Veremos primeramente el caso de interrupciones
por hardware: el 8086/8088 tiene dos entradas de
peticin de interrupcin: NMI e INTR y una de
reconocimiento (INTA). La gran mayora de las
fuentes de interrupcin se conectan al pin INTR, ya
que esto permite enmascarar las interrupciones (el
NMI no). Para facilitar esta conexin, se utiliza el
circuito integrado controlador de interrupciones,
que tiene el cdigo 8259A.

Existen algunas interrupciones predefinidas, de uso


exclusivo del microprocesador, por lo que no es
recomendable utilizar estos tipos de interrupcin
para interrupciones por hardware o software.
Tipo 0: Ocurre cuando se divide por cero o el
cociente es mayor
que el valor mximo que
permite el destino.
Tipo 1: Ocurre despus de ejecutar una
instruccin si TF (Trap
Flag) vale 1. Esto
permite la ejecucin de un programa paso a
paso, lo que es muy til para la depuracin de
programas.
Tipo 2: Ocurre cuando se activa la pata NMI
(interrupcin no
enmascarable).

Tipo 3: Existe una instruccin INT que ocupa un slo byte,


que es la correspondiente a este tipo. En los programas
depuradores (debuggers) (tales como Debug, CodeView,
Turbo Debugger, etc.), se utiliza esta instruccin como punto
de parada (para ejecutar un programa hasta una determinada
direccin, fijada por el usuario del depurador, se inserta esta
instruccin en la direccin orrespondiente a la parada y se
lanza la ejecucin. Cuando el CS:IP apunte a esta direccin se
ejecutar la INT 3, lo que devolver el control del
procesador al depurador). Debido a esto, si se le ordena al
depurador que ejecute el programa hasta una determinada
direccin 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 la
instruccin INT 3 no se pudo escribir sobre el programa). En
el 80386, con su elaborado hardware de ayuda para la
depuracin, se puede poner un punto de parada en ROM.

Tipo 4: Ocurre cuando se ejecuta la instruccin de


interrupcin condicional INTO y el flag OF (Overflow
Flag) vale 1.
Los tipos 5 a 31 (1F en hexadecimal) estn reservados
para interrupciones internas (tambin llamados
"excepciones") de futuros microprocesadores.
Prioridad entre diferentes fuentes de
interrupcin:
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).

Ciclo de DMA

El ciclo de DMA es un poco ms complicado ya que tanto la funcin de


lectura como de escritura son realizados en un mismo ciclo. El bus es
controlado por el controlador DMA y no por el 8088
Los ciclos de DMA no son iniciados ni por el 8088 ni por el controlador de
DMA sino por una peticin de un adaptador de interfase.
El bus del sistema posee tres seales: DRQ1, DRQ2 y DRQ3 producidas por
el controlador DMA. Un ciclo de DMA puede ser iniciado al poner en alto
cualquiera de estas seales. La primera indicacin en el sistema que una
peticin 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 (DACK0,
DACK1, DACK2, DACK3) es activada. Estas seales le indican al adaptador
de interfase que canal de DMA est siendo atendido.

Cuando el controlador DMA no est ejecutando un ciclo


de DMA, se encuentra en lo se conoce como un estado
de no actividad, ejecutando continuamente ciclos S0
mientras espera por peticiones de DMA.
Cuando una peticin es detectada, el controlador enva
una seal al 8088 que le dice que deje el control del bus
al siguiente tiempo conveniente. El controlador es
puesto en el estado S0 el cual busca continuamente
una respuesta del 8088 que le diga que el bus es libre y
que puede ser utilizado para iniciar el ciclo DMA. Esta
seal se conoce como ALDA y al recibirla el controlador
DMA entra en un estado S1 marcando el inicio del ciclo
DMA.

También podría gustarte