sábado, 19 de noviembre de 2011

IRQ o la misteriosa configuración olvidada.

                    (P) Hugo Napoli, 2011                    

Nota importante: la falta de experiencia me hizo caer en la incorrecta utilización de imágenes. Este es un problema ético que ya estoy comenzando a solucionar. En breve quedará resuelto. Gracias por tu comprensión.

Otra nota importante: el cierre de MegaUpLoad ha dejado inoperantes algunos enlaces de mis post, como le ha pasado a muchísima gente en el mundo. Estoy resubiendo mi material a RapidShare, MediaFire, HotFile, FileServe y GigaSize. Pasarán algunos días hasta que pueda solucionar esto. Algunos enlaces ya están reparados y funcionan correctamente. El resto, aún no. Gracias por tu paciencia.


IRQ: introducción a la demanda de CPU de de los componentes de hardware.

Muchos de mis clientes me han preguntado por qué simplemente no usar el método plug and play y dejar que el sistema operativo trabaje en los detalles de la configuración de IRQ.
La respuesta es simple: quiero la mayor compatibilidad posible y, al hacerlo, tener una máquina mucho más estable a largo plazo.
Muchos me dicen que esta idea es de la vieja escuela (y estoy de acuerdo en que Windows XP es mucho mejor manejando IRQs que sus hermanos más viejos) (...), pero "la vieja escuela" tiene sus ventajas.
Por ejemplo, una de mis máquinas personales es un Pentium III de 550Mhz, con 768 MB de memoria RAM. 
Me ha sido muy útil durante una mayor cantidad de años que los que puedo recordar, y sin un accidente (de Windows 98) en todo ese tiempo.
¿Por qué ha sido tan estable?
En gran medida, porque me tomé el tiempo necesario para infundir estabilidad y control sobre el Sistema la primera vez que lo instalé.
Y eso es parte de lo que vamos a ver hoy aquí.


IRQ (Interrupt ReQuest, solicitud de interrupción) son los diferentes caminos, conductos o vías comunicacionales que la CPU utiliza para intercambiar datos con (...) los componentes (...) de hardware del equipo o PC.

Cada una de las piezas de hardware (discos duros, memorias, aceleradoras gráficas, placas de red, sonido, etc.) conectadas a la placa base o motherboard, necesitan llamar la atención del microprocesador, y de hecho lo hacen constante y permanentemente.
Es decir que los componentes de hardware necesitan avisarle que tienen una solicitud, información o mensaje para darle al mismo.
Una vez que el procesador esté libre de tareas y pueda atender ese llamado, lo deberá procesar según el modo en que haya sido preparado para ello, y la comunicación con cada periférico o pieza de hardware se efectuará a través de un canal específico: el definido en la configuración de los IRQ.

Cuando un programa de control de emisión y recepción de faxes quiere utilizar el hardware correspondiente a este propósito, utiliza por ejemplo IRQ línea 3 (por lo general asignado a COM2 *) para "entenderse" con el módem.
Ahora vamos a suponer que el módem no se está direccionando por IRQ3 sino (...) por IRQ4: lo que sucede entonces, es que la comunicación se dará de forma entrecortada o difusa, o bien o no será atendida o interpretada por el módem en absoluto.
El resultado se presenta pues como un fallo de hardware.
Esta situación puede ocurrir cuando los IRQ están configurados de forma errónea (...), cuando más de un dispositivo se encuentra en el mismo IRQ, etc.

Como ya se ha dicho anteriormente, Windows XP es mejor que sus predecesores a la hora de gestionar recursos IRQ con varias piezas de hardware, pero con algunos programas mal codificados o con ciertos programas de DOS, el problema persiste.
La solución es, simplemente, tomar el control desde el principio.

Otra ventaja de usar IRQ estáticos y predefinidos, es que es mucho más fácil añadir o cambiar el hardware en el futuro.
Si los IRQs son estáticos, siempre se tendrá más claro lo que se debe hacer al reemplazar una pieza de hardware defectuoso, y qué IRQs están todavía disponibles cuando sea necesario agregar hardware adicional.

"Estabilidad del Sistema" es el nombre del juego, y conocer y administrar el control del hardware, es una manera de fomentarla.

Evitar que el todopoderoso Windows intente acaparar más potencia que la que la CPU de turno le pueda brindar, y que administre la estabilidad de todo el PC a su antojo, por mi parte, seguirá siendo tildada (orgullosamente) como una costumbre "de la vieja escuela", únicamente hasta que se convierta en absolutamente innecesaria.


Los IRQ (...) no son un misterio.

Aunque algunos IRQ son reservados, en los Sistemas de 32 bit (x86) hay 15 de ellos -los sistemas de 64 bits más recientes direccionan más de 15-, y en realidad hay una fórmula sencilla para (...) que todo funcione sin problemas y con muy baja -o nula- posibilidad de conflictos de hardware (...).
En primer lugar, aquí hay una tabla simple para poder memorizar, o imprimir para tener a mano en caso de necesidad.



IRQ 1: es utilizado por el Sistema, normalmente para
       comunicarse con el teclado.

IRQ 2: también es utilizado por el sistema, y por lo
       general es controlado mediante este IRQ el
       mismo controlador de interrupciones.

IRQ 3: COM2

IRQ 4: COM1

IRQ 5: tarjeta de Sonido

IRQ 6: disquete

IRQ 7: LPT1 (puerto de impresora)

IRQ 8: CMOS / RTC

IRQ 9: Floater. Utilizado por win95 y 98 para su
       servicio "plug'n play", y con frecuencia por
       Windows XP. Es la dirección múltiplex, que
       redirige todos los IRQ más altos.

IRQ 10: tarjetas de red

IRQ 11: tarjetas de video

IRQ 12: controladoras SCSI

IRQ 13: procesador de datos numéricos

IRQ 14: controlador del disco duro primario

IRQ 15: controlador del disco duro secundario



Junto con los IRQ, es necesario también configurar correctamente las direcciones de DMA (Direct Memory Access -acceso directo a memoria-), pero los únicos que (...) necesitas (...) recordar, son los DMA 1 y DMA 3. (...) En este ejemplo utilizaremos el DMA 1 para la tarjeta de sonido, y el 3 para la impresora.

Del total de los IRQ (...), sólo tienes que preocuparte por 3,4,5,7,9,10,11,12. En la mayoría de los sistemas actuales, los puertos USB por lo general comparten el IRQ 9 con otro hardware y no causan problemas.
Por ejemplo, asignar los puertos USB y una tarjeta de red al IRQ 10 no causaría problemas.

Los IRQs más bajos (1 al 7) son un poco más críticos que el resto, especialmente cuando se trata de la capacidad de ejecución de aplicaciones antiguas de DOS.
Es muy importante que lo hagas siguiendo un plan estratégico, si deseas obtener la configuración más compatible posible, sobre todo con antiguas aplicaciones basadas en DOS, de cuyo funcionamiento, Windows no es absolutamente consciente.

Es altamente probable que en este momento estemos comprendiendo que los IRQ ya no deben estar bajo el control de Windows, sino bajo el nuestro. Y eso es lo que en gran medida mantendrá estable nuestro PC ;)




Cómo controlar los IRQ.


Los IRQ se establecen en el BIOS (Basic Input Output System -Sistema básico de entrada y salida-) especialmente para la placa base.
El acceso al BIOS varía de acuerdo con los diversos fabricantes de placas base, así que por favor consulta el manual de tu placa para obtener detalles sobre cómo entrar en el área de configuración ** (...).

Una vez dentro, se cambia la configuración automática ("Auto" o "PnP") a "Manual", a los efectos de obtener la habilitación para poder indicarle a la placa base qué IRQs serán utilizados para PnP y cuáles para "legacy" o PCI / ISA.
De este modo estaremos previniendo cualquier cambio de tipo dinámico que se pretenda hacer sobre los IRQ sin nuestro consentimiento, ya sea que el intento de modificación provenga de los programas o del mismo Sistema Operativo.

En su mayor parte, (...) estableceremos los canales "legacy" en los IRQ 3,4,5,7,11,12.
En el caso de los ratones PS2, puede dejar el IRQ 12 en PnP para que el mismo quede asignado allí.

Esto nos va dejando los IRQs 3,4,5,7,10,11 para nuestro uso personal. Vamos a asignarlos a tarjetas de sonido, adaptadores de red, tarjetas de video, módems, etc. (...)

(...) En muchas placas base existe la posibilidad de asignar canales IRQ a dispositivos PCI.
Esto es útil pero no es totalmente necesario. En caso que esta característica no está presente o no funcione correctamente (como es el caso de algunas placas), entonces podremos controlar qué IRQ es asignado a cuál dispositivo, mediante una cuidadosa elección de la ranura PCI en la cual la tarjeta será colocada.

Teóricamente, queremos tratar de obtener el valor de IRQ para que coincida con los que se enumeran en la tabla que figura en la parte superior de este artículo.
Esa lista de IRQ está hecha "a la vieja usanza", pertenece a la vieja escuela y a la información clásica difundida en los viejos manuales, y me ha servido de manera casi infalible en los últimos 23 años de trabajo con computadoras.




Hay un estándar a modo de bitácora para la administración de los IRQ.


Los valores para los IRQ se van asignando en orden para las ranuras PCI, partiendo desde la más cercana a la CPU, y alejándose una por una consecutivamente. Por último, se asignarán valores para los zócalos ISA, aunque las placas nuevas ya no se fabrican con soporte para este tipo de hardware, hoy obsoleto.

De aquí se desprende que, si traemos el artículo al presente, le tendríamos que dar preferencia a la configuración de zócalos PCI Express por sobre el resto de los conectores, siguiendo el mismo criterio, y continuando entonces con los slot PCI.

(...) Supongamos que tenemos una tarjeta de sonido PCI, una tarjeta PCI de red, y que hemos instalado una aceleradora gráfica AGP.

Queremos que la tarjeta de sonido tome la primera (más baja) IRQ libre, así que la insertaremos en la primera ranura PCI -la más cercana al procesador- y con esto le estaremos asignando el IRQ 5, el cual fue definido para esto mismo si recordamos nuestra configuración ideal e inicial del BIOS.

En segundo lugar, añadiremos la tarjeta de red PCI en la ranura próxima disponible. Esto debería permitir que se tome el segundo IRQ disponible, que es el IRQ 10, y así sucesivamente.

Una vez que haya sido instalado el hardware, querremos consultar si en el equipo esta configuración realmente quedó establecida como en teoría, pero no haremos esto desde Windows, sino desde el BIOS.

Con el fin de comprobar esto, haremos una pausa en el arranque del ordenador, justo cuando el BIOS esté cargando. Este paso se produce inmediatamente antes que Windows empiece a cargar, y para entrar en el BIOS, será necesario conocer qué tecla pulsar repetidas veces en ese preciso instante **

(...) En algunos ordenadores, será necesario cancelar o desactivar la pantalla de presentación del fabricante, con el fin de ver los anuncios del POST (Power-On Self-Test -autocontrol de encendido-) desplegándose. Esto es importante porque será el POST, en la mayoría de los casos, quien nos indicará qué tecla pulsar para entrar en la BIOS, y en qué momento hacerlo.

Si los valores de IRQs están donde queremos, entonces bien, continuaremos con el inicio y nos olvidaremos del tema.
Si no es así, entonces (...) ajustaremos la configuración del BIOS nuevamente, probando a cambiar las tarjetas en torno a las ranuras PCI y comprobando nuevamente en cada caso. Repetiremos esta operación hasta que todo haya quedado configurado correctamente.

Si estás armándote un nuevo PC, esto deberá hacerse preferentemente antes de instalar el Sistema Operativo (...).

Recuerda que mediante la configuración manual de las IRQ (...), estamos construyendo una base sólida sobre la que vamos a construir el resto de la infraestructura de nuestro PC.

La inversión de tiempo y materia gris en una correcta configuración de hardware, nos ahorrará tiempo y esfuerzo en el futuro. Hacer las cosas mal siempre será más fácil, pero dará menos resultados favorables y nos dejará a la intemperie cuando menos lo esperemos... ¿o no?





* COM: nombre lógico asignado al puerto serial #1 en DOS y OS/2. Por lo general, los puertos COM están conectados a un modem o mouse, y algunas veces a una impresora. Las versiones de DOS hasta 3.2 soportan COM1 y COM2. La versión 3.3 soporta hasta COM4 y OS/2 tiene ocho puertos COM. Nótese la diferencia con LPT1. Extraído de Master Magazine: http://www.mastermagazine.info/termino/4352.php

LPT1: nombre lógico asignado al puerto paralelo #1 en DOS y OS/2 (generalmente conectado a una impresora). A un segundo dispositivo paralelo se le asigna LPT2. Extraído de Master Magazine: http://www.mastermagazine.info/termino/5630.php

** Las más usuales que he visto son SUPR o DEL, F1, F2, F10, ENTER y ESC, y hasta podría haber combinaciones como CTRL + ALT + F10 por ejemplo. Así que será mejor conocer de antemano esta información. De otro modo, se nos hará difícil entrar al BIOS.




NOTAS SOBRE LA CONSTRUCCIÓN DEL ARTÍCULO Y LOS DERECHOS DE AUTOR:

(...) Significa que se ha suprimido texto del original.
Lo que está en cursiva ha sido añadido por mí.
Artículo traducido directamente del inglés, adaptado y modificado por Hugo Napoli

Copyright © 1998-2008 Ron Haines, all rights reserved

CyberCity 2000 - Information Entertainment and Fun.