[2020][Febrero][Problema 1]

[2020][Febrero][Problema 1]

de Leandro Pereira Modzelewski -
Número de respuestas: 1

Buenas, al hacer la maquina de estados de este problema y compararla con la de la solución, tuve algunas discrepancias y quería consultar unas dudas.

La primera discrepancia que tengo es en los estados "espero INTA IRQ0" y "espero INTA IRQ1", que en la solución pone que vuelve al mismo estado si la entrada es X X 0. En mi caso puse que volvía en si mismo si la entrada era 0 en INTA, 1 en IRQY siendo Y el estado IRQ en el que me encuentre, y X  en la salida restante. Esto creo que se debe a una falta de aclaración en la letra de si una vez que se pide una interrupción IRQ la señal puede ser apagada, yo tome como que no, y por eso la señal correspondiente al estado en el que me encuentro permanece en 1.  No se si esta interpretación es válida, o si hubo algún tipo de aclaración en algún momento del examen. Por esta misma razón también tengo discrepancia en el cambio de estado entre "espero INTA IRQ0" y "espero INTA IRQ1" en los cuales la solución pone 1,X,1 y en mi caso pongo 1,1,1 ya que asumí que la señal solo se apagaba una vez que la salida IA correspondiente fuera 1.

Por otro lado, tampoco entiendo porque las salidas al ir de  "espero INTA IRQ0" a "espero INTA IRQ1" y viceversa tienen la señal INTR en 0, no debería mantener la señal prendida ya que sigue habiendo una interrupción no satisfecha? Y en caso de que si correspondiera apagar la señal INTR, no sería lo mismo que no hubiera una conexión entre estos estados y que volvieras a "espero IRQ"? Ya que luego si está prendida la señal de IRQ1 o IRQ0 correspondiente te moverías al estado que deberías, y simplificarías el modelo.

No se si quedaron claras mis dudas, espero puedan ayudarme,

Saludos,

Leandro.

En respuesta a Leandro Pereira Modzelewski

Re: [2020][Febrero][Problema 1]

de Federico Rivero -
Hola Leandro!

Contesto entrelíneas.

La primera discrepancia que tengo es en los estados "espero INTA IRQ0" y "espero INTA IRQ1", que en la solución pone que vuelve al mismo estado si la entrada es X X 0. En mi caso puse que volvía en si mismo si la entrada era 0 en INTA, 1 en IRQY siendo Y el estado IRQ en el que me encuentre, y X en la salida restante. Esto creo que se debe a una falta de aclaración en la letra de si una vez que se pide una interrupción IRQ la señal puede ser apagada, yo tome como que no, y por eso la señal correspondiente al estado en el que me encuentro permanece en 1. No se si esta interpretación es válida, o si hubo algún tipo de aclaración en algún momento del examen. Por esta misma razón también tengo discrepancia en el cambio de estado entre "espero INTA IRQ0" y "espero INTA IRQ1" en los cuales la solución pone 1,X,1 y en mi caso pongo 1,1,1 ya que asumí que la señal solo se apagaba una vez que la salida IA correspondiente fuera 1.

Honestamente no recuerdo si aclaramos algo, pero el dispositivo tiene que mantener su entrada IRQ en 1 hasta recibir la señal IA del controlador, esto no está aclarado en la letra pero es como tiene que funcionar el dispositivo (y esto lo tienen que saber de teórico). Poner X es ligeramente más óptimo porque en realidad el caso de que el controlador baje la señal a 0 no es esperado, es decir, se asume que no se va a dar. Pero no es un error incluir los 1 en esas señales.

Por otro lado, tampoco entiendo por qué las salidas al ir de "espero INTA IRQ0" a "espero INTA IRQ1" y viceversa tienen la señal INTR en 0, no debería mantener la señal prendida ya que sigue habiendo una interrupción no satisfecha? Y en caso de que si correspondiera apagar la señal INTR, no sería lo mismo que no hubiera una conexión entre estos estados y que volvieras a "espero IRQ"? Ya que luego si está prendida la señal de IRQ1 o IRQ0 correspondiente te moverías al estado que deberías, y simplificarías el modelo.

La razón de moverse de un estado a otro es asegurarle la prioridad al dispositivo 2 en caso de que el dispositivo 1 realice múltiples pedidos de interrupción inmediatos. Poner un 0 en INTR en ese ciclo es una interpretación nuestra de cómo debería funcionar el dispositivo, pero no estaría mal dejar en 1 esa señal.

Saludos,
Federico