Interrupción programada de E / S para dispositivos

0

Aunque puedo entender la diferencia entre las transferencias programadas de IO (PIO) e interrupción (INT), todavía hay algo vago.

En PIO, el procesador verifica repetidamente el pin READY para ver si el dispositivo está listo. Sin embargo, en el modo de interrupción, el procesador verifica el pin INT al final del ciclo de instrucciones.

Mi pregunta es que, en el modo de interrupción, el procesador aún tiene que verificar repetidamente el pin INT. Sé que en este modo, el dispositivo externo envía la señal de interrupción, pero ¿cómo el procesador se da cuenta de esa interrupción? El procesador debe verificar repetidamente el pin INT en cada ciclo (o ciclo de instrucciones). ¿No es así?

Referencias:

{1} enlace

{2} enlace

{3} enlace

    
pregunta mahmood

3 respuestas

2

En el modo PIO, el procesador está ejecutando instrucciones que verifican el IO. Eso significa que no está ejecutando otras instrucciones durante ese tiempo.

En el modo IRQ, la comprobación se realiza en la misma parte del hardware que normalmente incrementa el puntero de la instrucción o maneja los saltos. El cheque en sí no "cuesta" nada más que un poco del área del chip del procesador.

    
respondido por el pjc50
2

La diferencia es que con PIO, la CPU tiene que ejecutar periódicamente las instrucciones que leen el pin READY y decidir qué hacer al respecto, mientras que en el modo de interrupción, la CPU sigue ejecutando el código principal y es "interrumpida" por un hardware adicional que está monitoreando el pin INT.

Normalmente, la interrupción de hardware guarda la PC actual en la pila y luego bloquea la dirección del vector de interrupción en ella, lo que hace que la CPU salte al código del controlador de interrupción. Esto puede llevar solo unos pocos ciclos, pero como el programa principal no es consciente de que ha ocurrido, el controlador de interrupciones debe también guardar y restaurar cualquier registro que cambie. Como resultado, el tiempo requerido para procesar una interrupción puede ser mucho más largo que usar PIO.

    
respondido por el Bruce Abbott
0

Ayuda a mirar una arquitectura de procesador. Buscar tubería Mips con peligros. Puede ser un poco complejo, pero lo que se está señalando es que la PC (programa del reloj) de los procesadores es en sí misma el indicador. Cuando ocurre algo así como una interrupción, va a la unidad de peligro, que también actúa como la tabla de vectores de interrupción. Esta tabla de vectores se encarga de todo el mapeo y controla algunas piezas del procesador para detener, saltar, ramificar (cosas ISR). En muchos casos, dice hacer algo en modo Kernal, o syscall como lo llama MIPS. Esto significa una interrupción de software.

En el caso de PIO, cada vez que quiera revisar un pin, debe procesar las instrucciones para señalar ese pin, llamar a un periférico para hacerlo, informar y verificar los resultados con otra instrucción.

    
respondido por el mcmiln

Lea otras preguntas en las etiquetas