Interrupciones (IRQ) y conflictos del 'hardware'

Enero 2018

Qué es una interrupción

Debido a que el procesador no puede procesar múltiples datos al mismo tiempo (procesa un dato a la vez) el sistema de multitareas es en realidad una alternancia de fragmentos de instrucciones de muchas tareas diferentes. Es posible suspender momentáneamente un programa que se estaba ejecutando mediante una interrupción que dure el tiempo que lleva una rutina de servicios de interrupción. Luego, el programa interrumpido puede continuar ejecutándose. Existen 256 direcciones de interrupción diferentes.


Una interrupción se realiza cuando un componente del hardware del ordenador requiere la interrupción del mismo. Un ordenador posee muchos periféricos. Generalmente, necesitan utilizar recursos del sistema, aunque solo sea para comunicarse con este.


Cuando necesitan un recurso, envían una petición de interrupción al sistema para que este les preste atención. Cada periférico cuenta con un número de interrupción llamado IRQ (Interruption request, Petición de interrupción). Una manera de poder entender este proceso es imaginar a cada periférico tirando de una "cuerda" conectada a una campana para indicarle al ordenador que requiere de su atención.

De hecho, la "cuerda" es una línea física que conecta la ranura a la placa madre. Para una ubicación ISA de 8 bits, por ejemplo, hay 8 líneas IRQ (Interruption Request, Petición de Interrupción) que conectan la ranura ISA de 8 bits a la placa madre, IRQ 0 a IRQ7. Estas IRQ son controladas por un controlador de interrupciones que verifica qué IRQ tiene mayor prioridad. Para las ranuras de 16 bits, se agregan las IRQ que van desde la 8 a la 15, las cuales requieren de un segundo controlador de interrupciones. La conexión entre los dos grupos de interrupciones se realiza por medio de la IRQ 2 que está conectada a la IRQ 9 (denominada cascada). El término "cascada" se puede pensar como una manera de "insertar" las IRQ del 8 al 15 entre las IRQ del 1 al 3:

IRQ2 – Cascada

Dado que la prioridad se otorga a medida que va aumentando el orden en el número de IRQ, y debido a que las IRQ del 8 al 15 se insertan entre las IRQ del 1 al 3, el orden de prioridad es el siguiente:

0 > 1 > 8 > 9 > 10 > 11 > 12 > 13 > 14 > 15 > 3 > 4 > 5 > 6 > 7

Qué es un DMA

Los periféricos con frecuencia necesitan contar con "memoria prestada" del sistema, la cual utilizarán como buffer. Este buffer será un área de almacenamiento temporal que permite que se escriban rápidamente datos de entrada y salida.

Para afrontar esta necesidad, se definió un canal de acceso directo a la memoria denominado DMA (Direct Memory Access por sus siglas en inglés).

El canal DMA es un acceso a una ubicación RAM en el ordenador, al que una "Dirección de Inicio RAM" y una "Dirección de Fin" hacen referencia. Este método permite que un periférico utilice canales especiales que le den acceso directo a la memoria, sin involucrar al microprocesador. Esto permite que el microprocesador se libere de la necesidad de hacer este trabajo.

Un ordenador tipo PC cuenta con 8 canales DMA. Los primeros cuatro canales DMA poseen 8 bits mientras que los DMA que van del cuarto al séptimo poseen 16 bits.

Normalmente, los canales DMA se asignan de la siguiente manera:

DMA0 - libre

DMA1 - (tarjeta de sonido)/libre

DMA2 - controlador de disquetes

DMA3 - puerto paralelo (puerto de la impresora)

DMA4 - controlador del acceso directo a la memoria
(redirigido a DMA0)

DMA5 - (tarjeta de sonido)/ libre

DMA6 - (SCSI)/libre

DMA7 - disponible

Direcciones de base

Debido a que a veces los periféricos necesitan intercambiar información con el sistema, se les asignan direcciones de memoria para enviar y recibir datos. Estas direcciones se denominan direcciones de base (los siguientes términos también se usan algunas veces: puertos de entrada/salida, puertos de E/S,
dirección E/S, direcciones de puertos de E/S, puertos de base, o Direcciones de Entrada/Salida).

Por intermedio de esta dirección de base los periféricos se pueden comunicar con el sistema operativo. Por consiguiente, sólo puede haber una dirección de base por periférico.

A continuación, se podrá ver una lista de algunas direcciones de base comunes:

060h - teclado

170h/376h - controlador IDE secundario

1F0h/3F6h - controlador IDE primario

220h - tarjeta de sonido

300h - tarjeta de red

330h - tarjeta del adaptador SCSI

3F2h - controlador de la unidad de disquete

3F8h - COM1

2F8h - COM2

3E8h - COM3

2E8h - COM4

378h - LPT1

278h - LPT2

Sin embargo, toda esta información es generalmente irrelevante para el usuario medio, que no necesita preocuparse por esta.

Por qué existen conflictos con el 'hardware'

Una interrupción es una línea que conecta a un periférico con el procesador. También puede ser una interrupción del hardware, cuando un componente del hardware del PC así lo requiere. Por ejemplo, esto sucede cuando se presiona una tecla y el teclado quiere que el procesador lo note. Sin embargo, no se pueden solicitar las 256 interrupciones como interrupciones del hardware. Los diferentes periféricos siempre solicitan interrupciones específicas.

Por este motivo, cuando instales y configures tarjetas de expansión, deberás asegurarte de que dos periféricos deferentes no usen la misma interrupción.

De hecho, si dos periféricos poseen la misma IRQ, el sistema no sabrá a qué hardware deberá darle el control...el sistema se bloqueará o no funcionará normalmente... generando lo que se denomina conflicto con el hardware. Un conflicto con el hardware no solo se produce cuando dos periféricos sufren la misma interrupción del hardware. También puede generarse un conflicto si dos periféricos tienen la misma dirección de entrada/salida o si se les asignan los mismos canales DMA.

Cómo configurar las IRQ de los periféricos

La IRQ de una tarjeta puede modificarse, ya que es necesario asignarle un número de IRQ que otro periférico no utiliza.


En las tarjetas más antiguas, se configurara utilizando puentes en la tarjeta. En las tarjetas más recientes (las que poseen un BIOS con sistema Plug and Play), los recursos (IRQ, DMA, Direcciones de Entrada-Salida) se configuran con una pequeña utilidad (que a menudo se ejecuta en DOS) que viene junto con la tarjeta de red (generalmente se la denomina setup.exe, install.exe, ezconf.exe, config.exe...). Esta utilidad permite modificar la IRQ, el DMA y otros valores por medio de un software.

Para poder modificar los parámetros en forma manual, normalmente debe deshabilitar el modo plug and play. Sin embargo, muchas tarjetas pueden configurarse a voluntad (en Windows, es posible asignar un valor IRQ). Esto se aplica, en especial, a la mayoría de las tarjetas de sonido. No siempre es fácil encontrar recursos para todos los periféricos. Por este motivo, a continuación podrá ver los recursos que ya fueron utilizados y que, por lo tanto, no pueden asignarse a sus tarjetas de expansión:

IRQPeriférico
0 Reloj interno
1 teclado
2 controlador programable de interrupciones
Redirigido a las IRQ 8 a 15
3 puerto de comunicación COM2/COM4
4 puerto de comunicación COM1/COM3
5 libre
6 controladores del disquete
7 puerto de la impresora LPT1
8 CMOS (Reloj en tiempo real)
9 libre
10 libre
11 libre
12 puerto del ratón PS2/libre
13 procesador de datos numéricos
(coprocesador matemático)
14 controlador primario del disco rígido (IDE)
15 controlador secundario del disco rígido (IDE)


Como se pudo ver anteriormente, los puertos COM1 y COM4 usan la misma interrupción, como también lo hacen los puertos COM2 y COM3. Si se tiene en cuenta que dos periféricos no pueden usar la misma interrupción, esto puede parecer ilógico. De hecho, es posible utilizar COM1 y COM4 (como también COM2 y COM3) siempre y cuando no estén activados simultáneamente. De lo contrario, el ordenador puede bloquearse o comportarse en forma anormal.

Cómo resolver conflictos con el 'hardware'

Cuando tienes un problema que crees que está relacionado con la configuración del hardware de tu máquina, lo primero que debes hacer es identificarlo. Es decir, debes tratar de eliminar todas las variables posibles, generalmente abriendo la máquina y quitando, uno por uno, todos los elementos que pudieran causar un conflicto, o aislándolos por medio de un software (que esté instalado en tu sistema operativo), hasta encontrar el componente que provocó el conflicto.

Consulta también

Última actualización: 28 de diciembre de 2017 a las 04:46 por Carlos-vialfa.
El documento «Interrupciones (IRQ) y conflictos del 'hardware'» se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.
Actualización del Flash BIOS
Disquete de arranque