Tabla de IRQ y vectores de interrupción

Tabla de IRQ y vectores de interrupción

He estado leyendo mucho sobre las IRQ y parece que hay información contradictoria y desactualizada. Parte de ella se remonta a Windows 95. Esto es lo que me confunde.

  1. ¿La tabla de vectores de interrupciones gestiona y envía tanto las interrupciones de software como las de hardware? Si no, ¿cómo se controlan de manera diferente?

  2. Leí que hay una diferencia entre las IRQ del modo PCI y las IRQ del modo ISA, ¿es cierto? Si es así, ¿cómo se configura el modo y en qué funcionan de manera diferente?

  3. Ahora que tenemos PCI express, ¿utilizan IRQ en modo PCI (si existen), cómo funcionan (en términos de interrupción)?

EDITAR 4. Al mirar esta imagen, parece que hay muchas IRQ y que están asignadas a la memoria. ¿Cuáles son las implicaciones de esto? Hay muchas más de 16 IRQ. Sé que APIC permite más, pero ¿tanta cantidad?

ingrese la descripción de la imagen aquí

Gracias de antemano :-)

Respuesta1

No hay modos diferentes, hay hardware diferente en el antiguo bus ISA y en el bus PCI. El bus ISA proporcionó 16 líneas IRQ en el bus que los dispositivos podrían usar para señalar atención. El controlador de interrupciones programable (en realidad, un par de chips 8259A conectados en cascada) respondió a estas líneas priorizándolas y señalando a la CPU cuando una estaba activa. Esto provocó que la CPU invocara una rutina de servicio de interrupción. Las IRQ 0-7 activaron el int 8-F y las IRQ 8-15 activaron el int 70-77. Las interrupciones también podrían activarse mediante la instrucción int del software y provocarían que la CPU llamara a una rutina apuntada por la ranura correspondiente en la tabla de vectores de interrupción.

En lugar de 16 líneas IRQ compartidas por todos los dispositivos en el bus, PCI proporcionó 4 líneas IRQ diferentes en cada ranura del bus denominadas INTA-INTD, lo que permite que cada dispositivo tenga hasta 4 IRQ diferentes para su propio uso. En la práctica, los dispositivos solo usan INTA, que el hardware enruta a IRQ específicas.

Los números que ves en la imagen no son direcciones de memoria, son simplemente la representación hexadecimal del número IRQ.

El APIC admite 256 vectores de interrupción.

información relacionada