Controlador de interrupción programable


En informática , un controlador de interrupción programable ( PIC ) es un circuito integrado que ayuda a un microprocesador (o CPU ) a manejar solicitudes de interrupción (IRQ) provenientes de múltiples fuentes diferentes (como dispositivos de E/S externos) que pueden ocurrir simultáneamente. [1] Ayuda a priorizar las IRQ para que la CPU cambie la ejecución al controlador de interrupciones (ISR) más adecuado después de que el PIC evalúe las prioridades relativas de la IRQ. Los modos comunes de prioridad de interrupción incluyen prioridades duras, prioridades rotativas y prioridades en cascada. [ cita requerida ] Los PIC a menudo permiten asignar entradas a salidas de forma configurable. En la arquitectura de la PC, los PIC generalmente están integrados en chips de puente sur cuya arquitectura interna está definida por los estándares del proveedor del conjunto de chips.

Los PIC suelen tener un conjunto común de registros: registro de solicitud de interrupción (IRR), registro en servicio (ISR) y registro de máscara de interrupción (IMR). El IRR especifica qué interrupciones están pendientes de reconocimiento y, por lo general, es un registro simbólico al que no se puede acceder directamente. El registro ISR especifica qué interrupciones han sido reconocidas, pero aún están esperando un final de interrupción (EOI). El IMR especifica qué interrupciones deben ignorarse y no reconocerse. Un esquema de registro simple como este permite que hasta dos solicitudes de interrupción distintas estén pendientes al mismo tiempo, una en espera de reconocimiento y otra en espera de EOI.

Hay una serie de esquemas de prioridad comunes en los PIC que incluyen prioridades estrictas, prioridades específicas y prioridades rotativas.

Hay varias formas comunes de reconocer que se completó una interrupción cuando se emite una EOI. Estos incluyen especificar qué interrupción se completó, usar una interrupción implícita que se completó (generalmente la prioridad más alta pendiente en el ISR) y tratar el reconocimiento de interrupción como EOI.

Uno de los PIC más conocidos, el 8259A , se incluyó en la PC x86 . En los tiempos modernos, esto no se incluye como un chip separado en una PC x86, sino como parte del conjunto de chips Southbridge de la placa base. [2] En otros casos, ha sido reemplazado por los controladores de interrupción programables avanzados más nuevos que admiten más salidas de interrupción y esquemas de prioridad más flexibles.

Puede encontrar más información sobre Intel APIC en el Manual del desarrollador de software de arquitectura Intel IA-32, Volumen 3A: Guía de programación del sistema, Parte 1, Capítulo 10 , disponible gratuitamente en el sitio web de Intel .