8259A Pregunta de señal de fin de interrupción (EOI)

0

En la arquitectura x86, cuando finaliza el ISR de una interrupción de hardware, debe informar al chip 8259A que está listo y enviará una señal EOI al chip. Después de eso, puede regresar del ISR utilizando una instrucción IRET.

pregunta:
¿Hay alguna razón por la que la instrucción IRET no esté cableada para enviar automáticamente una señal EOI al 8259A? ¿Eso no ahorraría algo de procesamiento?

    
pregunta gilianzz

1 respuesta

3

Aquí hay dos instrucciones físicas. IRET es una rama / salto y avanza el contador del programa, saca algunos elementos de la pila, etc. para volver a la tarea anterior que se interrumpió. Utiliza IRET en más escenarios que el manejo de interrupciones, incluidas las excepciones de CPU y las interrupciones externas que no necesariamente pasan por el periférico del controlador de interrupciones.

Referencia IRET

  

Devuelve el control del programa de un controlador de excepciones o interrupciones a un programa o procedimiento que fue interrumpido por una excepción, una interrupción externa o una interrupción generada por software. Estas instrucciones también se utilizan para realizar un retorno de una tarea anidada . (Se crea una tarea anidada cuando se usa una instrucción CALL para iniciar un cambio de tarea o cuando una interrupción o excepción causa un cambio de tarea a un controlador de interrupción o excepción). Consulte la sección titulada "Vinculación de tareas" en el Capítulo 6 de IA- 32 Manual del desarrollador de software de arquitectura Intel, volumen 3.

EOI es un comando dado al PIC (controlador de interrupción) para borrar la interrupción actual y permitir que el PIC (8259A) emita más interrupciones. No hay ningún requisito de que exista un solo PIC o que todas las interrupciones / excepciones / etc del sistema provengan de ese PIC, por lo que debe indicar explícitamente al periférico (ya sea un IC separado como el original 8086 o integrado en un puente sur o en un morir periférico en x86 moderno) para cambiar el estado.

Conceptualmente, puede ser más fácil pensar en el 8259A como un microcontrolador especializado independiente que se adjunta de forma ubicua a su CPU

    
respondido por el crasic

Lea otras preguntas en las etiquetas