Controlador programable de interrupciones
# Controlador programable de interrupciones

En computación, un controlador programable de interrupciones o PIC (Programmable Interrupt Controller) es un dispositivo usado para combinar varias fuentes de interrupciones sobre una o más líneas del CPU, mientras que permite que los niveles de prioridad sean asignados a sus salidas de interrupción (no confundir con el microcontrolador PICmicro de Microchip Technology). Cuando el dispositivo tiene múltiples salidas de interrupción a imponer, las impondrá en orden de su prioridad relativa. Los modos comunes de un PIC incluyen prioridades duras, prioridades rotativas, y prioridades en cascada. Los PICs a menudo permiten la conexión en cascada de sus salidas a las entradas entre uno y otro.

## Características comunes

Los PICs típicamente tienen un conjunto común de registros: Interrupt Request Register (IRR), In-Service Register (ISR), Interrupt Mask Register (IMR). El IRR especifica qué interrupciones están pendientes de reconocimiento, y es típicamente un registro interno que no puede ser accesado directamente. El registro ISR especifica qué interrupciones han sido reconocidas, pero todavía están esperando por un final de interrupción (EOI). El IMR especifica qué interrupciones deben ser ignoradas y no ser reconocidas. Un esquema simple de registros como este, permite hasta dos distintas peticiones de interrupción estén pendientes a un tiempo, una esperando por reconocimiento, y una esperando por EOI.

En los PICs hay un número de esquemas de prioridad comunes, incluyendo prioridades duras, prioridades específicas, y prioridades rotativas.

Las interrupciones pueden ser disparadas por borde o por nivel.

Hay un número de formas comunes de reconocer que una interrupción ha terminado cuando es emitido un EOI. Estas incluyen especificar qué interrupción se terminó, usando una interrupción implícita que ha terminado (usualmente la prioridad más elevada está pendiente en el ISR), y tratar el reconocimiento de la interrupción como el EOI.

## Tipos de PIC bien conocidos

Uno de los PICs más conocidos, el 8259A, fue incluido en el IBM PC y los PC x86. En tiempos modernos, este no es incluido como un chip separado. En lugar de ello, su función es incluida como parte del chipset southbridge de la tarjeta madre. En otros casos, ha sido reemplazado por los más nuevos Advanced Programmable Interrupt Controller (APIC) que soportan más salidas de interrupción y más flexibles esquemas de prioridad.

## Más información

Más información sobre Intel APIC puede ser encontrada en el IA-32 Intel Architecture Software Developer's Manual, Volume 3A: System Programming Guide, Part 1, Chapter 10, libremente disponible en el Website de Intel.

