¿Qué es una IRQ?

5 de septiembre de 2010

La manera más fácil de explicar una IRQ es pensar en tal como un identificador único. El proceso IRQ es similar a una subasta. El procesador es el subastador y los periféricos son los licitadores. Cada licitador tiene una bandera o paleta para llamar la atención del subastador. Si más de un licitador tiene la misma bandera, esto se convierte en un caos. Casi todos los componentes primarios, tales como los gráficos, sonido, módem, etc., requieren al menos una IRQ, sin considerar si son tarjetas o si se integraron a la tarjeta del sistema. Muchos de los dispositivos antiguos requieren su propia IRQ (su única bandera) con respecto a todos los demás dispositivos. Tarjetas más nuevas pueden compartir con frecuencia IRQs, pero las antiguas tarjetas generalmente no lo pueden hacer porque tratan a sus IRQ como propias. Cuando dos de estos antiguos dispositivos intentan usar la misma IRQ, uno o más de los dispositivos no funcionará adecuadamente. A esto se le llama un conflicto IRQ. Tales conflictos pueden ocasionar un rendimiento inadecuado, bloqueo del sistema y fallas. Sin embargo, la mayoría de los componentes más nuevos pueden compartir una IRQ. Compartir una IRQ es la manera moderna de permitir que se agreguen más tarjetas a un sistema. Observe que algunos componentes (como las tarjetas de video) no pueden compartir IRQs. Esto se debe a que la IRQ de la tarjeta de video generalmente es 10, 11 ó 12. Estas son de baja prioridad y pueden retrasarse (o perderse) debido a solicitudes de prioridad más alta. Esto puede ocasionar efectos visuales indeseables. Las tarjetas que se ajustan por completo al modelo PCI Plug-n-Play permiten compartir la IRQ.

Existen 16 IRQs (15 utilizables) en una computadora. Aquí se presenta una asignación típica de estas IRQs:

IRQ 0 Sistema – Temporizador del Sistema
IRQ 1 Sistema – Teclado
IRQ 2 Sistema – PIC en cascada (controlador de interrupción programable), controla IRQ 8-15
IRQ 3 Sistema – Puerto Serial (COM 2 y COM4)
IRQ 4 Sistema – Puerto Serial (COM 1 y COM3)
IRQ 5 Libre – Adaptador de uso general
IRQ 6 Sistema – Controlador de Diskette
IRQ 7 Sistema – Impresora 1
IRQ 8 Sistema – Reloj en tiempo real CMOS Real
IRQ 9 Libre – Adaptador de uso general
IRQ 10 Libre – Adaptador de uso general
IRQ 11 Libre – Adaptador de uso general
IRQ 12 Sistema – Puerto para el Mouse
IRQ 13 Sistema – Coprocesador Matemático (aun cuando esté incorporado al procesador, sigue usando una IRQ)
IRQ 14 Sistema – Controlador de disco duro
IRQ 15 Libre – Adaptador de uso general

Puerto E/S 0x00000000-0x00000CF7 Bus PCI
Puerto E/S 0x00000000-0x00000CF7 Controladora de acceso directo a memoria

Puerto E/S 0x000003C0-0x000003DF Intel(R) P965/G965 PCI Express Root Port - 29A1
Puerto E/S 0x000003C0-0x000003DF Radeon X1600 Series

IRQ 22 Microsoft UAA Bus Driver for High Definition Audio
IRQ 22 Sound Blaster X-Fi Xtreme Audio

IRQ 23 Intel(R) ICH8 Family USB Universal Host Controller - 2830
IRQ 23 Intel(R) ICH8 Family USB2 Enhanced Host Controller - 2836

IRQ 16 Intel(R) P965/G965 PCI Express Root Port - 29A1
IRQ 16 Radeon X1600 Series
IRQ 16 Intel(R) ICH8 Family USB Universal Host Controller - 2834
IRQ 16 Intel(R) ICH8 Family PCI Express Root Port 1 - 283F
IRQ 16 Intel(R) ICH8 Family PCI Express Root Port 5 - 2847
IRQ 16 JMicron JMB36X Controller

IRQ 17 Intel(R) ICH8 Family USB Universal Host Controller - 2835
IRQ 17 Intel(R) ICH8 Family PCI Express Root Port 6 - 2849
IRQ 17 Generic Marvell Yukon Chipset based Ethernet Controller

IRQ 18 Intel(R) ICH8 Family USB2 Enhanced Host Controller - 283A
IRQ 18 Intel(R) ICH8 Family USB Universal Host Controller - 2832

IRQ 19 Intel(R) ICH8 Family USB Universal Host Controller - 2831
IRQ 19 Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethernet Controller
IRQ 19 Intel(R) ICH8 4 port Serial ATA Storage Controller - 2820
IRQ 19 Intel(R) ICH8 2 port Serial ATA Storage Controller - 2825

Dirección de memoria 0xA0000-0xBFFFF Bus PCI
Dirección de memoria 0xA0000-0xBFFFF Intel(R) P965/G965 PCI Express Root Port - 29A1
Dirección de memoria 0xA0000-0xBFFFF Radeon X1600 Series

Puerto E/S 0x000003B0-0x000003BB Intel(R) P965/G965 PCI Express Root Port - 29A1
Puerto E/S 0x000003B0-0x000003BB Radeon X1600 Series

esta lista es la que sale en conflictos/recursos compartidos.

El PC normalmente viene con ttyS0 y ttyS2 en la IRQ 4, y ttyS1 y ttyS4 en la IRQ 3. Puede saber que IRQs están usándose viendo /proc/interrupts. Para usar más de dos dispositivos serie, debe reasignar las interrupciones. Una buena elección es reasignar una interrupción del puerto paralelo. El PC normalmente viene con IRQ 5 e IRQ 7 configuradas como interrupciones para los puertos paralelos, pero poca gente usa dos puertos paralelos. Puede reasignar una de las interrupciones a un dispositivo serie, y aún usar felizmente un puerto paralelo. Necesitará el programa setserial para hacer esto. Además, tendrá que jugar con los puentes de su placa, vea los documentos de su placa. Ponga los puentes para la IRQ que quiera para cada puerto.

Necesitará configurar algunas cosas, ya que hay una, y solamente una interrupción para cada dispositivo serie. Así es como tengo mi configuración en /etc/rc.d/rc.local - debe hacerlo donde quiera que tenga su fichero de inicialización:

/sbin/setserial /dev/cua0 irq 3 # mi raton serie
/sbin/setserial /dev/cua1 irq 4 # mi terminal Wyse no-inteligente
/sbin/setserial /dev/cua2 irq 5 # mi modem Zoom
/sbin/setserial /dev/cua3 irq 9 # mi modem USR

Asignación estándar de IRQ: 
  • IRQ  0    Reloj en el canal 0
  • IRQ  1    Teclado
  • IRQ  2    Cascada para el controlador 2
  • IRQ  3    Puerto serie 2
  • IRQ  4    Puerto serie 1
  • IRQ  5    Puerto paralelo 2
  • IRQ  6    Disquetera
  • IRQ  7    Puerto paralelo 1
  • IRQ  8    Reloj de tiempo real (24 horas)
  • IRQ  9    Redireccionada a IRQ 2
  • IRQ 10    no asignada
  • IRQ 11    no asignada
  • IRQ 12    no asignada
  • IRQ 13    Coprocesador matematico
  • IRQ 14    Controlador de disco duro 1
  • IRQ 15    Controlador de disco duro 2
No existen realmente un Modo Correcto de hacer las cosas cuando se eligen las interrupciones. Sólo asegúrese de que no las está usando la placa madre, o cualquier otra placa. 2, 3, 4, 5, ó 7 son buenas elecciones. ``no asignada'' significa que actualmente nada estándar usa estas IRQs. Nótese también que la IRQ 2 es la misma que la IRQ 9. Puede llamarlo 2 ó 9, el controlador serie lo entenderá. Si tiene una placa serie con un conector de 16 bits, también puede usar las IRQ 10, 11, 12 ó 15.

¡Sólo asegúrese de no usar las IRQs 0, 1, 6, 8, 13 ó 14!. Estas son usadas por la placa madre. La hará muy desgraciada si coge sus IRQs. Cuando lo haga, compruebe otra vez /proc/interrupts y asegúrese de que no haya conflictos.

Si le gustó esta entrada, ¡podría invítame a un café!

Related Posts with Thumbnails