Irq Dma

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

IRQ (INTERRUPT REQUEST)

PRINCIPIO DE FUNCIONAMIENTO

Una interrupcin solicita la ejecucin de una rutina la cual se conoce como


servicio; controlador o gestor de la interrupcin, ISR (Interrupt service
routine).
Se requiere ejecutar un programa (servicios del BIOS) ubicado en algn
lugar de la memoria RAM o en la ROM-BIOS.
Las direcciones de inicio o vectores de interrupcin de estos programas, se
copian en una tabla de 1024 Bytes que se carga al principio de la memoria
de usuario (direcciones 0000h a 0400h) durante el proceso de inicio del
sistema.

Una interrupcin es una seal que indica al procesador que algo requiere
atencin inmediata, el procesador identifica la peticin, detiene su proceso y
atiende la solicitud, al recibir una peticin de interrupcin, el procesador:

Termina la instruccin que est ejecutando.


Guarda el contenido de los registros.
Deshabilita el sistema de interrupciones.
Ejecuta el servicio, y Vuelve a su punto de ejecucin.

Las nicas que deben recibirse (desde el exterior) son las interrupciones
hardware (que se originan en dispositivos externos al procesador).
INTERRUPCIONES HARDWARE

Ocurren cuando un dispositivo necesita atencin del procesador y genera


una seal elctrica en la lnea IRQ que tiene asignada.

El PIC recibe y procesa la seal antes de enviarla al procesador. Existen


dos formas diferentes, dependiendo de que la interrupcin sea
enmascarable o no enmascarable.

INTERRUPCIONES HARDWARE ENMASCARABLES

Bajo control del software, el procesador puede aceptar o ignorar la seal de


interrupcin.
Se enva una seal a la patilla INTR, y el procesador la atiende o la ignora
en funcin del contenido de un bit (IF) en un registro (FLAGS) que puede
estar habilitado o deshabilitado.
Si atiende la seal, el procesador concluye la instruccin que estuviese en
proceso y a continuacin responde con una combinacin de seales en
algunas de sus patillas generando dos seales INTA ("Interrupt
Acknowledge").

La primera seal es simplemente un aviso; la segunda es una peticin para


que el PIC coloque en el bus de datos un Byte con el nmero de
interrupcin, de forma que el procesador pueda localizar el servicio
solicitado.
El valor recibido (0-255) es multiplicado por 4 para calcular la direccin del
vector correspondiente en la tabla de vectores de interrupcin, lo que se
realiza mediante un desplazamiento binario de dos posiciones a la
izquierda.
El procesador salva en la pila los valores del registro de estado, del
contador de programa (PC) y del segmento de cdigo (CS); deshabilita el bit
IF del registro de estado, para que la interrupcin no pueda ser afectada
con una nueva interrupcin enmascarable hasta que sea especficamente
permitido, y finalmente ejecuta el servicio.
La penltima secuencia de la rutina de servicio es enviar una seal de que
la interrupcin ha terminado (EOI) para que el PIC pueda seguir enviando
interrupciones.
A continuacin se restablecen los registros a su estado inicial (existente
antes de que se produjera la interrupcin).

INTERRUPCIONES DE HARDWARE NO ENMASCARABLES

La interrupcin no puede ser deshabilitada por software.


Ocurren cuando se recibe una seal en la patilla NMI ("Nonmaskable
Interrupt ) del procesador.
Se reservan para casos en que es crtica la respuesta, por ejemplo que se
detecte un error de paridad en la memoria.
Son de prioridad ms alta que las enmascarables.
Solo se pueden enmascarar a travs de circuitos externos al procesador,
por ejemplo a nivel del PIC.
Cuando el procesador recibe una de estas instrucciones no se genera
ningn ciclo de reconocimiento de la instruccin (INTA), y el procesador le
asigna un 2 como nmero de excepcin.

ORDEN DE PRIORIDAD: Las interrupciones tienen un orden de prioridad, de


forma que si ocurren dos de forma simultnea es atendida la de prioridad ms
alta. El orden en que se atienden es el siguiente:
1.
2.
3.
4.

Excepciones del procesador.


Interrupciones de software.
Interrupciones de hardware no enmascarable.
Interrupciones hardware enmascarables.

EL CONCEPTO DE DMA:

DMA: (Acceso Directo a Memoria) este mecanismo est controlado por un chip
especfico, el DMAC (DMA Controller). El DMA permite a cierto tipo de
componentes de una computadora acceder a la memoria del sistema para leer
o escribir independientemente de la CPU. El sistema DMA dispone de algunos
elementos hardware auxiliares que lo convierten en un subsistema autnomo
dentro del bus externo.

Lneas dedicadas en el bus de control.


Un procesador especifico, el DMAC (DMA Controller), que permite que
puedan realizarse estos intercambios sin intervencin del procesador.
Pequea zonas auxiliares de memoria, conocidas como Registros de
pgina.

El Sistema Windows incluye el programa MSINFO32.EXE con el que se


pueden comprobar muchas caractersticas del sistema, incluyendo la
asignacin de canales DMA.
Para los usuario de Linux, se puede utilizar el comando dmesg | grep -i dma
para obtener una relacin de los dispositivos del sistema que, estn habilitados
para utilizar este tipo de transferencias.
Generalmente la relacin contiene como mnimo los dos canales IDE (ide0 e
ide1) y la unidad de disco (hda).
Segn se refieran a operaciones de lectura (memoria dispositivo) o escritura
(dispositivo memoria) reciben distintos nombres porque su significado difiere:
Escritura: Direccin de inicio ("Write starting address"). Contador ("Write
starting word count").
Lectura: Direccin
actual
de
lectura
("Read
current
address"). Contador ("Read remaining word count")
MODOS DE OPERACIN:
1.
2.
3.
4.
5.

Sencillo
Bloque
Demanda
Cascada
Auto -inicializacin

Es un acceso a memoria que se crea para particin de la memoria en bloques


del mismo tamao. Muchos sistemas hardware utilizan DMA ya que permite a
dispositivos de diferentes velocidades comunicarse sin someter a la CPU una
carga masiva de interrupciones.

También podría gustarte