
En un ordenador , una solicitud de interrupción (o IRQ ) es una señal de hardware que se envía al procesador para detener temporalmente un programa en ejecución y permitir que se ejecute un programa especial, un controlador de interrupciones . Las interrupciones de hardware se utilizan para gestionar eventos como la recepción de datos de un módem o tarjeta de red , pulsaciones de teclas o movimientos del ratón.
Las líneas de interrupción suelen identificarse mediante un índice con el formato IRQ seguido de un número. Por ejemplo, en la familia de microcontroladores de interrupción programables (PIC) Intel 8259 , existen ocho entradas de interrupción denominadas comúnmente IRQ0 a IRQ7 . En los sistemas informáticos basados en x86 que utilizan dos de estos PIC , el conjunto combinado de líneas se denomina IRQ0 a IRQ15 . Técnicamente, estas líneas se denominan IR0 a IR7 , y las líneas del bus ISA a las que históricamente estaban conectadas se denominan IRQ0 a IRQ15 (aunque históricamente, a medida que aumentaba el número de dispositivos de hardware, el número total de interrupciones posibles se incrementaba mediante solicitudes en cascada, haciendo que uno de los números IRQ se propagara a otro conjunto o conjuntos de IRQ numeradas, gestionadas por uno o más controladores posteriores).
Los sistemas x86 más recientes integran un controlador de interrupciones programable avanzado (APIC) que cumple con la arquitectura Intel APIC. Cada APIC local suele admitir hasta 255 líneas IRQ, mientras que cada APIC de E/S suele admitir hasta 24 líneas IRQ. [ 1 ]
Durante los primeros años de la informática personal, la gestión de IRQ solía ser una preocupación para los usuarios. Con la introducción de los dispositivos plug and play, esto se ha mitigado mediante la configuración automática. [ 2 ]
Descripción general
Al trabajar con hardware de computadoras personales, instalando y desinstalando dispositivos, el sistema depende de las solicitudes de interrupción. Existen configuraciones predeterminadas en la BIOS del sistema , reconocidas por el sistema operativo. Los usuarios avanzados pueden modificar estas configuraciones. La tecnología moderna Plug and Play no solo ha reducido la necesidad de preocuparse por estas configuraciones, sino que prácticamente ha eliminado la configuración manual.
IRQ x86
Los primeros ordenadores personales que utilizaban los procesadores Intel 8086/8088 solo contaban con un único microcontrolador PIC, por lo que estaban limitados a ocho interrupciones. Esta limitación se amplió a dos microcontroladores PIC con la introducción de los ordenadores basados en el procesador 286.
Normalmente, en sistemas que utilizan el microcontrolador Intel 8259 , se emplean 16 IRQ. Las IRQ del 0 al 7 son gestionadas por un microcontrolador Intel 8259, y las IRQ del 8 al 15 por un segundo microcontrolador Intel 8259. El primer microcontrolador, el maestro, es el único que envía señales directamente a la CPU. El segundo microcontrolador, el esclavo, envía señales al maestro a través de su línea IRQ 2, y el maestro reenvía la señal a la CPU. Por lo tanto, solo hay 15 líneas de solicitud de interrupción disponibles para el hardware.
En los sistemas APIC con IOAPIC , normalmente hay 24 IRQ disponibles, y las 8 IRQ adicionales se utilizan para enrutar las interrupciones PCI, evitando conflictos entre las interrupciones PCI configuradas dinámicamente y las interrupciones ISA configuradas estáticamente. En los primeros sistemas APIC con solo 16 IRQ o con solo controladores de interrupción Intel 8259, las líneas de interrupción PCI se enrutaban a las 16 IRQ mediante una tabla PIR (enrutamiento de interrupciones PCI) integrada en la BIOS. Los sistemas operativos como Windows 95 OSR2 pueden utilizar la tabla PIR para procesar el enrutamiento de IRQ PCI; [ 3 ] [ 4 ] posteriormente, la tabla PIR fue reemplazada por el protocolo ACPI _PRT (tabla de enrutamiento PCI). En los sistemas APIC con MSI , normalmente hay 224 interrupciones disponibles. [ 5 ]
La forma más sencilla de ver esta información en Windows es usar el Administrador de dispositivos o Información del sistema (msinfo32.exe). En Linux , las asignaciones de IRQ se pueden ver ejecutando cat /proc/interruptso usando la procinfoutilidad.
PIC maestro
- IRQ 0 – temporizador del sistema (no se puede modificar)
- IRQ 1 – teclado en puerto PS/2 (no se puede cambiar)
- IRQ 2 – Controlador de interrupciones 8259 ; señales en cascada de IRQ 8–15
- IRQ 3 : controlador de puerto serie para el puerto serie 2 (compartido con el puerto serie 4, si está presente).
- IRQ 4 : controlador del puerto serie 1 (compartido con el puerto serie 3, si está presente).
- IRQ 5 – puerto paralelo 3 o tarjeta de sonido ISA
- IRQ 6 – controlador de disquete
- IRQ 7 : puerto paralelo 1 (compartido con el puerto paralelo 2, si está presente). También puede compartirse con una tarjeta de sonido ISA secundaria mediante una gestión cuidadosa del puerto.
Imagen del esclavo
- IRQ 8 – reloj en tiempo real (RTC)
- IRQ 9 – Interrupción de control del sistema de la interfaz de configuración y alimentación avanzada (ACPI) en chipsets Intel. [ 6 ] Y/o reservada para el uso de periféricos (su uso depende del sistema operativo).
- IRQ 10 : La interrupción se deja para el uso de periféricos (por ejemplo, SCSI o NIC ).
- IRQ 11 : La interrupción se reserva para el uso de periféricos (por ejemplo, SCSI o NIC).
- IRQ 12 – ratón en el puerto PS/2
- IRQ 13 – Interrupción del coprocesador de la CPU , de la unidad de punto flotante integrada o entre procesadores (su uso depende del sistema operativo).
- IRQ 14 – canal ATA principal (la interfaz ATA suele dar servicio a discos duros y unidades de CD )
- IRQ 15 – canal ATA secundario
Conflictos
En los primeros ordenadores personales compatibles con IBM , un conflicto de IRQ era un error de hardware común que se producía cuando dos dispositivos intentaban usar la misma solicitud de interrupción (o IRQ) para enviar una señal de interrupción al controlador de interrupciones programable (PIC). El PIC espera solicitudes de interrupción de un solo dispositivo por línea; por lo tanto, si más de un dispositivo envía señales IRQ a través de la misma línea, generalmente se producirá un conflicto de IRQ que puede bloquear el ordenador .
Por ejemplo, si se agrega una tarjeta de expansión de módem a un sistema y se le asigna IRQ4, que tradicionalmente se asigna al puerto serie 1, es probable que cause un conflicto de IRQ. Inicialmente, IRQ 7 era una opción común para el uso de una tarjeta de sonido , pero luego se usó IRQ 5 cuando se descubrió que IRQ 7 interferiría con el puerto de impresora ( LPT1 ). Los puertos serie se deshabilitan frecuentemente para liberar una línea IRQ para otro dispositivo. IRQ 2/9 es la línea de interrupción tradicional para un puerto MIDI MPU-401, pero esto entra en conflicto con la interrupción de control del sistema ACPI (SCI está cableado a IRQ9 en los chipsets Intel); [ 6 ] esto significa que las tarjetas ISA MPU-401 con un IRQ 2/9 cableado , y los controladores de dispositivos MPU-401 con un IRQ 2/9 codificado, no se pueden usar en modo controlado por interrupciones en un sistema con ACPI habilitado.
En ciertas condiciones, dos dispositivos ISA podían compartir la misma IRQ siempre que no se usaran simultáneamente. Para solucionar este problema, el bus PCI posterior permite compartir IRQ. PCI Express no tiene líneas de interrupción físicas y utiliza interrupciones señalizadas por mensaje (MSI) para comunicarse con los sistemas operativos , si están disponibles.
Véase también
Referencias
- ↑ "IOAPIC - OSDev Wiki" . wiki.osdev.org . Consultado el 7 de noviembre de 2024 .
- ↑ "IRQ" . Consultado el 13 de septiembre de 2019 .
- ↑ "1.3.1.2. Dirección de IRQ del bus PCI - Hardware de PC en pocas palabras, 3.ª edición [ Libro ] " .
- ↑ "Plug-and-Play-HOWTO: Interrupciones PCI" .
- ↑ Coleman, James (2009). "Resultados, plataforma de clase estación de trabajo". Reducción de la latencia de interrupción mediante el uso de interrupciones señalizadas por mensaje (PDF) . Intel Corporation. pág. 19.
- 1 2 Oshins, Jake (30 de diciembre de 2001). "RE: Máquinas ACPI e IRQ 9 [ era: Comunicación con los desarrolladores de NT ] " . Recuperado el 17 de abril de 2014 .
Lecturas adicionales
- Gilluwe, Frank van. El PC no documentado, Segunda edición , Addison-Wesley Developers Press, 1997. ISBN 0-201-47950-8
- Shanley, Tom; Anderson, Don (1995). Swindle, John (ed.). Arquitectura de sistemas ISA (3.ª ed.). Mindshare, Inc. / Addison-Wesley Publishing Company . ISBN 0-201-40996-8ISBN 978-0-201-40996-3.
- Solari, Edward. Arquitectura y diseño de hardware y software PCI y PCI-X, sexta edición , Research Tech Inc., 2004. ISBN 0-9760865-0-6
Enlaces externos
- Manual del desarrollador de software para arquitecturas Intel 64 e IA-32, Volumen 3A: Guía de programación del sistema, Parte 1, capítulo 6 : más información sobre el manejo de interrupciones en Intel 64 e IA-32.
- Lista de interrupciones de Ralf Brown
- Interrumpe