En una computadora , una solicitud de interrupción (o IRQ ) es una señal de hardware enviada al procesador que detiene temporalmente un programa en ejecución y permite que un programa especial, un controlador de interrupciones , se ejecute en su lugar. Las interrupciones de hardware se utilizan para manejar eventos como la recepción de datos de un módem o tarjeta de red , pulsaciones de teclas o movimientos del mouse.
Las líneas de interrupción a menudo se identifican mediante un índice con el formato de IRQ seguido de un número. Por ejemplo, en la familia Intel 8259 de controladores de interrupción programables ( PIC ) hay ocho entradas de interrupción comúnmente denominadas 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 al 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 la conexión solicitudes, haciendo que uno de los números de IRQ caiga en cascada a otro conjunto o conjuntos de IRQ numerados, manejados por uno o más controladores posteriores).
Los sistemas x86 más nuevos integran un controlador de interrupción programable avanzado (APIC) que se ajusta a la arquitectura APIC de Intel. Estos APIC admiten una interfaz de programación para hasta 255 líneas IRQ de hardware físico por APIC, con un sistema típico que implementa el soporte para solo alrededor de 24 líneas de hardware en total.
Durante los primeros años de la informática personal, la gestión de IRQ solía ser motivo de preocupación para los usuarios. Con la introducción de dispositivos plug and play , esto se ha aliviado mediante la configuración automática. [1]
Descripción general
Cuando se trabaja con hardware de computadora personal, instalando y quitando dispositivos, el sistema se basa en solicitudes de interrupción. Hay configuraciones predeterminadas que se configuran en el BIOS del sistema y son reconocidas por el sistema operativo. Los usuarios avanzados pueden modificar esta configuración predeterminada. La tecnología plug and play moderna no solo ha reducido la necesidad de preocuparse por estos ajustes, sino que también ha eliminado prácticamente la configuración manual.
IRQ x86
Las primeras PC que usaban los procesadores Intel 8086/8088 solo tenían un único PIC y, por lo tanto, estaban limitadas a ocho interrupciones. Esto se amplió a dos PIC con la introducción de las PC 286.
Normalmente, en los sistemas que utilizan Intel 8259 PIC, se utilizan 16 IRQ. Las IRQ 0 a 7 son administradas por un Intel 8259 PIC, y las IRQ 8 a 15 por un segundo Intel 8259 PIC. El primer PIC, el maestro, es el único que envía señales directas a la CPU. El segundo PIC, el esclavo, envía señales al maestro en su línea IRQ 2, y el maestro pasa la señal a la CPU. Por lo tanto, solo hay 15 líneas de solicitud de interrupción disponibles para hardware.
En APIC con sistemas IOAPIC , normalmente hay 24 IRQ disponibles, y las 8 IRQ adicionales se utilizan para enrutar interrupciones PCI, evitando conflictos entre interrupciones PCI configuradas dinámicamente e 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 un PIR (enrutamiento de interrupciones PCI) integrado en el Southbridge. En APIC con sistemas MSI , normalmente hay 224 interrupciones disponibles. [2]
La forma más sencilla de ver esta información en Windows es utilizar el Administrador de dispositivos o la Información del sistema (msinfo32.exe). En Linux , las asignaciones de IRQ se pueden ver ejecutando cat / proc / interrupts o usando la utilidad procinfo .
PIC maestro
- IRQ 0: temporizador del sistema (no se puede cambiar)
- IRQ 1: teclado en el puerto PS / 2 (no se puede cambiar)
- IRQ 2: señales en cascada de las IRQ 8 a 15 (cualquier dispositivo configurado para usar IRQ 2 realmente usará IRQ 9)
- IRQ 3 - puerto serie controlador de puerto serie 2 (compartido con puerto serie 4, si está presente)
- IRQ 4: controlador de puerto serie para el puerto serie 1 (compartido con el puerto serie 3, si está presente)
- IRQ 5 - puerto paralelo 2 y 3 o tarjeta de sonido
- IRQ 6 - controlador de disquete
- IRQ 7 - puerto paralelo 1. Se utiliza para impresoras o para cualquier puerto paralelo si no hay una impresora. También se puede compartir potencialmente con una tarjeta de sonido secundaria con una gestión cuidadosa del puerto.
PIC esclavo
- IRQ 8 - reloj en tiempo real (RTC)
- IRQ 9: interrupción de control del sistema de interfaz de alimentación y configuración avanzada (ACPI) en chipsets Intel. [3] Otros fabricantes de chipsets pueden usar otra interrupción para este propósito, o ponerla a disposición para el uso de periféricos (cualquier dispositivo configurado para usar IRQ 2 en realidad usará IRQ 9)
- IRQ 10: la interrupción se deja abierta para el uso de periféricos (interrupción abierta / disponible, SCSI o NIC )
- IRQ 11: la interrupción se deja abierta para el uso de periféricos (interrupción abierta / disponible, SCSI o NIC)
- IRQ 12 - mouse en el puerto PS / 2
- IRQ 13: coprocesador de la CPU o unidad de punto flotante integrada o interrupción entre procesadores (el uso depende del sistema operativo)
- IRQ 14: canal ATA principal (la interfaz ATA generalmente sirve para unidades de disco duro y unidades de CD )
- IRQ 15 - canal ATA secundario
Conflictos
En las primeras computadoras personales compatibles con IBM , un conflicto de IRQ es un error de hardware que alguna vez fue común, recibido cuando dos dispositivos intentaban usar la misma solicitud de interrupción (o IRQ) para señalar una interrupción al controlador de interrupción programable (PIC). El PIC espera solicitudes de interrupción de solo un dispositivo por línea, por lo que más de un dispositivo que envía señales de IRQ a lo largo de la misma línea generalmente causará un conflicto de IRQ que puede congelar una computadora .
Por ejemplo, si se agrega una tarjeta de expansión de módem a un sistema y se asigna a 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 la impresora (LPT1). Los puertos serie se desactivan con frecuencia 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); [3] esto significa que las tarjetas ISA MPU-401 con una IRQ 2/9 cableada y los controladores de dispositivo MPU-401 con una IRQ 2/9 codificada no se pueden usar en modo controlado por interrupciones en un sistema con ACPI habilitado.
En algunas condiciones raras, dos dispositivos ISA podrían compartir la misma IRQ siempre que no se usen simultáneamente. Para resolver este problema, el bus PCI posterior permite compartir IRQ. PCI Express no tiene líneas de interrupción física y utiliza interrupciones señalizadas por mensaje (MSI) para los sistemas operativos, si están disponibles.
Ver también
- Controlador de interrupciones programable avanzado (APIC)
- Controlador de interrupción programable (PIC)
- Intel 8259
- Controlador de interrupciones
- Dirección base de entrada / salida
- Conecta y reproduce
- Votación
- Interrumpir
Referencias
- ^ "IRQ" . Consultado el 13 de septiembre de 2019 .
- ^ Coleman, James (2009). "Resultados, plataforma de clase de estación de trabajo". Reducción de la latencia de interrupciones mediante el uso de interrupciones señalizadas por mensaje (PDF) . Corporación Intel. pag. 19.
- ^ a b Oshins, Jake (30 de diciembre de 2001). "RE: ACPI Machines e IRQ 9 [era: Comunicarse con los desarrolladores de NT]" . Consultado el 17 de abril de 2014 .
Otras lecturas
- Gilluwe, Frank van. La PC indocumentada, segunda edición , Addison-Wesley Developers Press, 1997. ISBN 0-201-47950-8
- Shanley, Tom; Anderson, Don (1995). Swindle, John (ed.). Arquitectura del sistema ISA (3 ed.). Mindshare, Inc. / Addison-Wesley Publishing Company . ISBN 0-201-40996-8. ISBN 978-0-201-40996-3 . [1]
- 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 de 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 Intel 64 e IA-32
- Lista de interrupciones de Ralf Brown