Dispositivo interrumpe a si mismo en modo 2 de interrupciones

Dispositivo interrumpe a si mismo en modo 2 de interrupciones

de Felipe Rafael Tambasco Furtado -
Número de respuestas: 2
Me olvidé de consultar esta duda en la consulta de hoy.

Si tengo un sistema trabajando en modo 2 de interrupciones, un dispositivo puede interrumpirse a si mismo? 

O qué pasa cuando llega una nueva solicitud de interrupción a un controlador en servicio? 

En respuesta a Felipe Rafael Tambasco Furtado

Re: Dispositivo interrumpe a si mismo en modo 2 de interrupciones

de Julio Perez -

Está explicado en la sección 3 del manual:

"3. Descripción funcional

Cuando el periférico genera un flanco creciente en la entrada IRQ, es registrada una solicitud en un flip flop interno (IFF) y se pone IEO = '0'. Si lo permite la entrada IEI ( = '1'), se baja la salida INT y se espera al reconocimiento. Cuando el microprocesador realiza un ciclo de reconocimiento e IEI = '1' el controlador coloca el vector de interrupciones en el bus de entrada al microprocesador. Si dentro del ciclo de reconocimiento la entrada IEI baja a '0', es retirado el vector del bus. De este modo es atendido el problema de la propagación IEI – IEO entre controladores. Mientras se está ejecutando la subrutina de atención de un periférico, éste puede solicitar una nueva interrupción. Esta nueva solicitud es registrada y atendida al finalizar la subrutina, si los periféricos de mayor prioridad lo permiten. El usuario puede borrar una nueva solicitud mientras la anterior está siendo atendida. La salida SRV permanece activa mientras se ejecuta la subrutina de atención al periférico conectado al controlador. Luego de ser reconocida la interrupción se genera un pulso a '0', de un período de reloj de duración, en cada una de las salidas M1_out_n y IORQ_out_n. Estas pueden ser conectadas un periférico diseñado para modo 1 para darle el reconocimiento de interrupción."

En respuesta a Julio Perez

Re: Dispositivo interrumpe a si mismo en modo 2 de interrupciones

de Felipe Rafael Tambasco Furtado -

Dos preguntas me surgen de esto,

Si se consulta el estado del controlador en ese caso, que atendiendo una interrupción tiene otra pendiente, al leer su estado, es "en servicio" o "con solicitudes pendientes"? En el caso que sea "en servicio", hay forma de consultar si tiene una solicitud pendiente?

Esto funciona solo para una interrupción pendiente o se pueden anidar ilimitadas solicitudes de interrupción?