Controlador de interrupción programable avanzado


En el cálculo de , Intel 's avanzada controlador de interrupción programable ( APIC ) es una familia de controladores de interrupciones . Como sugiere su nombre, el APIC es más avanzado que el controlador de interrupción programable (PIC) 8259 de Intel , lo que permite particularmente la construcción de sistemas multiprocesador . Es uno de varios diseños arquitectónicos destinados a resolver problemas de eficiencia de enrutamiento de interrupciones en sistemas informáticos multiprocesador.

El APIC es un diseño de arquitectura dividida, con un componente local (LAPIC) generalmente integrado en el propio procesador y un APIC de E / S opcional en un bus del sistema. El primer APIC fue el 82489DX: era un chip discreto que funcionaba como APIC local y de E / S. El 82489DX permitió la construcción de sistemas de multiprocesador simétrico (SMP) con los procesadores Intel 486 y los primeros Pentium ; por ejemplo, el sistema 486 SMP bidireccional de referencia utilizó tres chips 82489DX, dos como APIC locales y uno como APIC de E / S. Comenzando con el procesador P54C , la funcionalidad APIC local se integró en el silicio de los procesadores Intel. El primer APIC de E / S dedicado fue el Intel 82093AA, que estaba diseñado para sistemas basados ​​en PIIX3 .

Hay dos componentes en el sistema Intel APIC, el APIC local (LAPIC) y el APIC de E / S. Hay un LAPIC en cada CPU del sistema. En la primera implementación ( 82489DX ), el LAPIC era un circuito discreto opuesto a su implementación posterior en el silicio de los procesadores Intel. Por lo general, hay un APIC de E / S para cada bus de periféricos del sistema. En los diseños de sistemas originales, los LAPIC y los APIC de E / S se conectaban mediante un bus APIC dedicado. Los sistemas más nuevos utilizan el bus del sistema para la comunicación entre todos los componentes APIC.

Cada APIC, ya sea un chip discreto o integrado en una CPU, tiene un registro de versión que contiene un número de versión de cuatro bits para su implementación APIC específica. Por ejemplo, el 82489DX tiene un número de versión APIC de 0, mientras que la versión 1 se asignó a la primera generación de APIC locales integrados en los procesadores Pentium 90 y 100. [1]

En los sistemas que contienen un PIC 8259 , el 8259 se puede conectar al LAPIC en el procesador de arranque del sistema (BSP), a uno de los APIC de E / S del sistema, o ambos. Sin embargo, lógicamente, el 8259 solo se conecta una vez en un momento dado.

El chip APIC de Intel de primera generación, el 82489DX, que estaba destinado a utilizarse con procesadores Intel 80486 y los primeros Pentium, es en realidad un APIC de E / S y local externo en un circuito. La especificación Intel MP 1.4 se refiere a ella como "APIC discreto" en contraste con el "APIC integrado" que se encuentra en la mayoría de los procesadores Pentium. [2] El 82489DX tenía 16 líneas de interrupción; [3] también tenía la peculiaridad de que podía perder algunas interrupciones ISA. [4]