¿Por qué las interrupciones vectoriales no son posibles?

2

las interrupciones vectoriales no son posibles si una CPU tiene una línea de solicitud de interrupción única y una línea de concesión de interrupción única, mientras que los dispositivos de interrupción múltiple son posibles .

¿La afirmación anterior es correcta en caso afirmativo? Entonces, ¿cómo? No soy muy bueno en microprocesadores pero entiendo conceptos básicos. Entonces, si es una tontería, hágamelo saber.

    
pregunta user1766481

2 respuestas

3

En una configuración en la que varios dispositivos están vinculados a una sola línea de interrupción de la CPU, y las interrupciones se combinan simplemente sin identificar la fuente de la interrupción (a través de alguna codificación de prioridad, o tal vez un gran OR lógico), luego la vectorización no es posible Se ve esencialmente como si solo hubiera un único origen de interrupción.

Por supuesto, el envío de interrupciones puede ser vectorizado en algún nivel. Sin embargo, esta "vectorización" se realiza mediante la pila de software. Hay un único controlador de interrupción principal que debe interrogar a todos los dispositivos para determinar cuál (o quizás más de uno) está señalando la interrupción, y enviar el controlador registrado apropiado para cada uno.

Interrupciones vectorizadas significa que tiene soporte de hardware para distinguir múltiples fuentes de interrupción, de modo que el envío real de interrupciones primarias realizado por el procesador ya está vectorizado. En el ciclo de interrupción, el circuito de interrupción en realidad entrega a la CPU un número que luego se usa para indexar en la tabla de vectores. El código que se envía puede suponer que la interrupción es para el dispositivo que está asociado con ese número de interrupción. (A menos que, por supuesto, sea el caso que, a pesar de las múltiples líneas de interrupción, ¡las interrupciones aún se compartan! Supongamos que solo hay 8 líneas, pero más de 8 dispositivos que pueden interrumpir).

    
respondido por el Kaz
2

Realmente depende de qué tipo de CPU estés hablando.

Por ejemplo, el Z80 tiene una sola línea de solicitud de interrupción, pero tiene un "modo de interrupción vectorial" que se basa en un chip separado para priorizar múltiples interrupciones externas y presentar un vector durante el ciclo de reconocimiento de interrupción.

Otros sistemas lo hacen encadenando en serie las líneas de solicitud / reconocimiento de interrupción, haciendo que los dispositivos "más cercanos" a la CPU sean las interrupciones de mayor prioridad.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas