Está en la página 1de 46

UNIDAD 3

SELECCIN DE
COMPONENTES PARA
ENSAMBLE DE EQUIPOS DE
CMPUTO
3.1. COMPONENTES PARA ENSAMBLE EQUIPOS DE CMPUTO

3.1.1. Chipset
El "chipset" es el conjunto (set) de chips que se encargan de controlar determinadas funciones del
ordenador, como la forma en que interacciona el microprocesador con la memoria o la cach, o el
control de los puertos y slots ISA, PCI, AGP, USB...

Antiguamente estas funciones eran relativamente sencillas de realizar y el


chipset apenas influa en el rendimiento del ordenador, por lo que el chipset
era el ltimo elemento al que se conceda importancia a la hora de comprar
una placa base, si es que alguien se molestaba siquiera en informarse sobre
la naturaleza del mismo. Pero los nuevos y muy complejos micros, junto con
un muy amplio abanico de tecnologas en materia de memorias, cach y
perifricos que aparecen y desaparecen
casi de mes en mes, han hecho que la importancia del chipset crezca enormemente.

De la calidad y caractersticas del chipset dependern:


Obtener o no el mximo rendimiento del microprocesador.
Las posibilidades de actualizacin del ordenador.
El uso de ciertas tecnologas ms avanzadas de memorias y perifricos.

Debe destacarse el hecho de que el uso de un buen chipset no implica que la placa base en conjunto
sea de calidad. Como ejemplo, muchas placas con chipsets que daran soporte a enormes cantidades
de memoria, 512 MB o ms, no incluyen zcalos de memoria para ms de 128 256. O bien el caso
de los puertos USB, cuyo soporte est previsto en la casi totalidad de los chipsets de los ltimos dos
aos pero que hasta fecha reciente no han tenido los conectores necesarios en las placas base.
Trataremos slo los chipsets para Pentium y superior, ya que el chipset de un 486 o inferior no es de
mayor importancia (dentro de un lmite razonable) por estar en general todos en un nivel similar de
prestaciones y rendimiento, adems de totalmente descatalogados.

Tampoco trataremos todas las marcas, sino slo las ms conocidas o de ms inters; de cualquier
forma, muchas veces se encuentran chipsets aparentemente desconocidos que no son sino chipsets
VIA, ALI o SIS bajo otra marca.

Chipsets para Pentium y Pentium MMX

De Intel (Tritones)
Fueron la primera (y muy exitosa) incursin de Intel en el mundo de los chipsets, mundo en el cual ha
pasado de no fabricar prcticamente ninguno a tener un monopolio casi total, que es la forma en que
a Intel le gusta hacer los negocios. Esto no resulta extrao, ya que nadie mejor que Intel conoce cmo
sacar partido a sus microprocesadores; adems, el resto de fabricantes dependen de la informacin
tcnica que les suministra Intel, que lo hace cuando y como quiere.

430 FX: el Tritn clsico, de apabullante xito. Un chipset bastante apropiado para los Pentium
"normales" (no MMX) con memorias tipo EDO. Hoy en da desfasado y descatalogado.

430 HX: el Tritn II, la opcin profesional del anterior. Mucho ms rpido y con soporte para placas
duales (con 2 micros). Algo anticuado pero muy bueno.
430 VX: el Tritn III? Ms bien el 2.5; algo ms lento que el HX, pero con soporte para memoria
SDRAM. Se puede decir que es la revisin del FX, o bien que se sac para que la gente no se asustara
del precio del HX...

430 TX: el ltimo chipset de Intel para placas Pentium (placas socket 7). Si queremos usar micros
Intel y aplicaciones que se contenten con placas con 1 Pentium, la opcin a elegir. Soporte MMX,
SDRAM, UltraDMA... Un problema: si se le pone ms de 64 MB de RAM, la cach deja de actuar;
aunque ms de 64 MB es mucha RAM.
Chipsets de Intel para Pentium y Pentium MMX

Concepto 430 FX 430 HX 430 VX 430 TX

Nmero CPUs mx. 1 2 1 1

RAM mxima 128 MB 512 MB 128 MB 256 MB

Tipos de RAM FPM, EDO FPM, EDO, SDRAM

RAM cacheable mxima 64 MB 512 MB (segn 64 MB


placa, no todas)

Cach L2 mxima 512 KB

Velocidad bus mx. 66 MHz

Puertos adicionales USB UltraDMA y USB

Comentarios Desfasado No adecuados para micros no Intel de nueva generacin (no


soportan AGP ni bus 100 MHz)

Lo ms destacable de estos chipsets, su buen rendimiento, especialmente con micros Intel.

Lo peor, su escaso soporte para micros no Intel, que en el campo socket 7 tienen desarrollos
superiores a los de Intel, como los AMD K6 (normal y K6-2) o los Cyrix-IBM 6x86MX (M2), en general
ms avanzados que los Pentium y Pentium MMX.
De VIA (Apollos)
Unos chipsets bastante buenos, se caracterizan por tener soporte para casi todo lo
imaginable (memorias SDRAM o BEDO, UltraDMA, USB...); su pelea est en la gama
del HX o TX, aunque suelen ser algo ms lentos que stos al equiparlos con micros
Intel, no as con micros de AMD o Cyrix-IBM.

Chipsets de VIA para Pentium y Pentium MMX

Concepto VP2 VPX VP3 MVP3

Nmero CPUs mx. 1

RAM mxima 512 MB 1 GB

Tipos de RAM FPM, EDO, BEDO, SDRAM FPM, EDO, SDRAM

RAM cacheable mxima 512 MB (segn placa, no todas) 512 MB 1 GB (segn placa, no todas)

Cach L2 mxima 2048 KB

Velocidad bus mx. 66 MHz 75 MHz 66 MHz 100 MHz

Puertos adicionales UltraDMA y USB UltraDMA, USB y AGP

Comentarios No adecuados para micros no Intel de nueva Sin bus a 100 MHz Muy moderno, con
generacin (no soportan AGP ni bus 100 MHz) todos los avances

Lo bueno de las placas con chipsets VIA es que siguen en el mercado socket 7, por lo que tienen
soporte para todas las nuevas tecnologas como el AGP o los buses a 100 MHz, adems de que su
calidad suele ser intermedia-alta. En las placas con chipsets Intel hay un abanico muy amplio entre
placas muy buenas y otras francamente malas, adems de estar ya desfasadas (ningn chipset Intel
para socket 7 soporta AGP, por ejemplo).
El ltimo chipset de VIA para socket 7, el MPV3, ofrece todas las prestaciones del BX de Intel (excepto soporte
para placas duales), configurando lo que se denomina una placa Super 7 (con AGP y bus a 100 MHz), que con un
micro como el nuevo AMD K6-2 no tiene nada que envidiar a un equipo con Pentium II.

De ALI
Tienen soluciones tan avanzadas como el chipset para placas Super 7 "Aladdin V", que como el MPV3 de VIA
resulta equiparable a todos los efectos al BX de Intel para placas Pentium II (bus a 100 MHz, AGP...); una
fantstica eleccin para micros como el AMD K6-2.

Chipsets de ALI para Pentium y Pentium MMX


Concepto M1521/M1523 M1531/M15X3 M1541/M1543
(Aladdin III) (Aladdin IV-IV+) (Aladdin V)
Nmero CPUs mx. 1
RAM mxima 1 GB
Tipos de RAM FPM, EDO, SDRAM FPM, EDO, SDRAM,
PC100
RAM cacheable 512 MB (segn placa, no todas)
mxima
Cach L2 mxima 1 MB
Velocidad bus mx. 75 MHz 83,3 MHz 100 MHz
Puertos adicionales USB UltraDMA y USB UltraDMA, USB y
AGP
Comentarios Apropiados para micros no Intel pero no de Muy moderna, con
ltima generacin (AMD K6-2) por carecer todos los avances
de bus a 100 MHz
De SiS

Como los anteriores, sus capacidades son avanzadas, aunque su velocidad sea a veces algo ms
reducida que en los de Intel. Resultan recomendables para su uso junto a chips compatibles Intel
como el K6 de AMD o el 6x86MX (M2) de Cyrix-IBM, aunque desgraciadamente no soportan por
ahora el bus a 100 MHz del nuevo K6-2.

Chipsets de SIS para Pentium y Pentium MMX


Concepto 5597/5598 5581/5582 5591/5592
Nmero CPUs mx. 1
RAM mxima 384 MB 768 MB
Tipos de RAM FPM, EDO, SDRAM
RAM cacheable 128 MB 256 MB
mxima
Cach L2 mxima 512 KB 1 MB
Velocidad bus mx. 75 MHz 83 MHz
Puertos adicionales UltraDMA, USB y UltraDMA y USB UltraDMA, USB y
SVGA integrada AGP
Comentarios Apropiados para micros no Intel (especialmente Cyrix) pero no los
de ltima generacin (AMD K6-2) por carecer de bus a 100 MHz
De Intel

A decir verdad, an sin competencia seria, lo que no es de extraar teniendo el Pentium II slo un
aito... y siendo de Intel. Son bastante avanzados, excepto el anticuado 440 FX (que no es
propiamente un chipset para Pentium II, sino ms bien para el extinto Pentium Pro) y el barato EX,
basado en el LX pero con casi todas las capacidades reducidas.

Chipsets de Intel para Pentium II y Celeron

Concepto 440 FX 440 LX 440 BX 440 EX

Nmero CPUs mx. 2 1

RAM mxima 512 MB 1 GB EDO 512 1 GB 256 MB


MB SDRAM

Tipos de RAM FPM, EDO FPM, EDO, SDRAM SDRAM y PC100 FPM, EDO, SDRAM
SDRAM

RAM cacheable
mxima
No aplicable (dentro del microprocesador, tamao fijo)
Cach L2 mxima

Velocidad bus mx. 66 MHz 100 MHz 66 MHz

Puertos adicionales UltraDMA y USB UltraDMA, USB y AGP

Comentarios Desfasado Apropiado slo


para Celeron
De otras marcas

No son demasiados, pero los que hay tienen todas las capacidades que hacen falta en una placa
Pentium II. El problema con el que se encuentran no es su falta de eficacia, ya que aunque los de
Intel estn algo ms rodados, el rendimiento es muy similar; pero el hecho de que durante un ao la
gente slo haya odo hablar de FX, LX, BX y EX hace difcil que entren en un mercado donde Intel
tiene un monopolio absoluto.

Chipsets de otras marcas para Pentium II y Celeron

Concepto VIA Apollo Pro ALI Aladdin Pro II SIS 5601


M1621/M15X3

Nmero CPUs mx. 1 ms dependiendo de la placa

RAM mxima 1 GB 1 GB SDRAM 2 GB FPM


o EDO

Tipos de RAM FPM, EDO, SDRAM, PC100 SDRAM

RAM cacheable mxima No aplicable (dentro del microprocesador, tamao ?


fijo)
Cach L2 mxima

Velocidad bus mx. 100 MHz

Puertos adicionales UltraDMA, USB y AGP

Comentarios Muy avanzados, equivalentes al Intel BX En proyecto


Los trminos ms importantes a conocer son:

AGP: un tipo de puerto o slot especializado para grficos 3D.


Bus (del sistema): el canal por el que se comunica el micro con la memoria y habitualmente con la
cach L2. Cuanto ms ancho sea, mejor, especialmente para micros muy rpidos.
Cach L2: la cach secundaria o de nivel 2 (level 2). Es la memoria cach externa, que acelera el
rendimiento del ordenador; cuanta ms memoria RAM tengamos, ms cach necesitaremos (por
ejemplo, unos 512 KB para 32 MB de RAM).
PC100: el tipo normalizado de memoria SDRAM de 100 MHz.
RAM cacheable: la cantidad de RAM mxima que es capaz de manejar la cach. Si superamos
esta cifra es como si no tuviramos memoria cach.
UltraDMA: una tecnologa para los discos duros IDE modernos que la soportan que eleva la
transferencia terica de datos hasta 33,3 MB/s.
USB: un tipo de puerto moderno para conectar dispositivos externos de velocidad media-baja, con
la ventaja de ser universal (el mismo para todos) y poderse conectar en cadena unos a otros.

La eleccin del chipset


Chipset y placa base forman un conjunto indisoluble y de la mxima importancia, por lo que su
compra debe estar acompaada de una cierta reflexin. Lo primero es recordar que un buen chipset
slo no hace una buena placa; si encontramos dos placas con el mismo chipset pero una cuesta el
doble que la otra, por algo ser (aunque a veces ese algo es simplemente la marca de la placa, por
ejemplo las placas Intel, que en general no son tan avanzadas como las Asus, Iwill o Gigabyte pero
que cuestan lo mismo o ms que stas...)
As mismo, una placa debe ser comprada pensando en el futuro. Por ejemplo, si vamos a comprar
una para Pentium II, merece la pena comprar una con un chipset capaz de trabajar a 100 MHz de bus
(una Intel BX, Apollo Pro o Aladdin Pro II), con lo que podremos ampliarla en el futuro a micros a 350
MHz o ms, cosa que no podremos hacer si compramos una LX, por ejemplo.

No se obsesione con el Intel Inside. No es que le tenga una mana especial a Intel, y si la tuviera, me
la aguantara; se trata de que mucha gente prefiere dejarse llevar por el atractivo de una marca sin
informarse de las caractersticas de lo que compra.

Por ejemplo, si bien el chipset BX de Intel para Pentium II es an el mejor de su categora, en el


campo socket 7 los mejores desarrollos no son de Intel, que lo ha abandonado a favor del campo
Pentium II.

Por ello, comprarse una placa TX ahora sera un error, no porque sea Intel sino porque ese chipset
est anticuado (aunque hace unos meses era probablemente el mejor de su categora); y lo mismo
pasa con el EX, que es mucho peor que los Apollo Pro o Aladdin Pro II.

Y por ltimo, estudie bien la compra. Puede ser que el chipset admita mucha memoria, pero que la
placa tenga pocos zcalos para instalarla; o que estemos comprando una placa base o un ordenador
de segunda mano, y realmente nos importe ms que la memoria sea suficiente y fcilmente
ampliable (EDO mejor que FPM, con zcalos vacos...) que el hecho de que tenga un chipset sin AGP o
sin AGP ni UltraDMA, cuando puede que no vayamos a usar uno ni otro.
3.1.2. Controlador del Bus

PCI
Visto lo anterior, se puede ver que el bus del futuro es claramente el PCI de Intel. PCI significa:
interconexin de los componentes perifricos (Peripheral Component Interconnect) y presenta un
moderno bus que no slo est meditado para no tener la relacin del bus ISA en relacin a la
frecuencia de reloj o su capacidad sino que tambin la sincronizacin con las tarjetas de ampliacin
en relacin a sus direcciones de puerto, canales DMA e interrupciones se ha automatizado
finalmente de tal manera que el usuario no deber preocuparse ms por ello.

El bus PCI es independiente de la CPU, ya que entre la CPU y el bus PCI se instalar siempre un
controlador de bus PCI, lo que facilita en gran medida el trabajo de los diseadores de placas.

Por ello tambin ser posible instalarlo en sistemas que no estn basados en el procesador Intel si no
que pueden usar otros, como por ejemplo, un procesador Alpha de DEC.

Tambin los procesadores PowerMacintosh de Apple se suministran en la actualidad con bus PCI.

Las tarjetas de expansin PCI trabajan eficientemente en todos los sistemas y pueden ser
intercambiadas de la manera que se desee. Solamente los controladores de dispositivo deben
naturalmente ser ajustados al sistema anfitrin (host) es decir a su correspondiente CPU.
Como vemos el bus PCI no depende del reloj de la CPU, porque est separado de ella por el
controlador del bus. Si se instalara una CPU ms rpida en su ordenador. no debera preocuparse
porque las tarjetas de expansin instaladas no pudieran soportar las frecuencias de reloj superiores,
pues con la separacin del bus PCI de la CPU stas no son influidas por esas frecuencias de reloj. As
se ha evitado desde el primer momento este problema y defecto del bus VL.

El bus PCI emplea un conector estilo Micro Channel de 124 pines (188 en caso de una
implementacin de 64 bits) pero nicamente 47 de estas conexiones se emplean en una tarjeta de
expansin( 49 en caso de que se trate de un adaptador bus-master); la diferencia se debe a la
incorporacin de una lnea de alimentacin y otra de tierra. Cada una de las seales activas del bus
PCI est bien junto o frente a una seal de alimentacin o de tierra, una tcnica que minimiza la
radiacin.

El lmite prctico en la cantidad de conectores para buses PCI es de tres; como ocurre con el VL, ms
conectores aumentaran la capacitancia del bus y las operaciones a mxima velocidad resultaran
menos fiables.
A pesar de presentar un rendimiento similar al de un bus local conectado directamente, en realidad
PCI no es ms que la eliminacin de un paso en el micropocesador.

En lugar de disponer de su propio reloj, un bus PCI se adapta al empleado por el microprocesador y su
circuitera, por tanto los componentes del PCI estn sincronizados con el procesador. El actual
estndar PCI autoriza frecuencias de reloj que oscilan entre 20 y 33 Mhz.

A pesar que de que las tarjetas ISA no pueden ser instaladas en una ranura PCI, no debera
renunciarse a la posibilidad de insercin de una tarjeta ISA. As pues, a menudo se puede encontrar
en un equipo con bus PCI la interfaz puente llamada PCI-To-ISA-Bridge.

Se trata de un chip que se conecta entre los distintos slots ISA y el controlador del bus PCI. Su tarea
consiste en transponer las seales provenientes del bus PCI al bus ISA. De esta manera pueden
seguir siendo utilizadas las tarjetas ISA al amparo del bus PCI.

A pesar de que el bus PCI es el presente, sigue y seguir habiendo buses y tarjetas de expansin ISA
ya que no todas las tarjetas de expansin requieren las ratios de transferencia que permite el bus
PCI. Sin embargo las tarjetas grficas, tarjetas SCSI y tarjetas de red se han decantando cada vez
ms fuertemente hacia el bus PCI.

La ventaja de la velocidad de este sistema de bus es que este hardware puede participar del continuo
incremento de velocidad de los procesadores.
3.1.3 Puertos Entrada/Salida

Cualquier dispositivo (distinto de la memoria RAM) que intercambie datos con el sistema lo hace a
travs de un "puerto", por esto se denominan tambin puertos de E/S ("I/O ports"). Desde el punto
de vista del software, un puerto es una interfaz con ciertas caractersticas; se trata por tanto de una
abstraccin (no nos referimos al enchufe con el que se conecta fsicamente un dispositivo al
sistema), aunque desde el punto de vista del hardware, esta abstraccin se corresponde con un
dispositivo fsico capaz de intercambiar informacin (E/S) con el bus.

Como los dispositivos E/S tienen algn tipo de conexin con el bus externo, deben tener una
direccin (o conjunto de ellas) que los identifique. Los hemos comparado con un telfono, un
dispositivo con el que se puede enviar/recibir informacin mediante una direccin.

Hablar de un puerto E/S es casi siempre sinnimo de una direccin, y es costumbre informtica
referirse a estas direcciones en hexadecimal. De modo que, por ejemplo, un puerto puede ser 0x21
en un fuente o 21h en un texto informtico.

Nota: Al tratar de las E/S hemos indicado que puerto es sinnimo de perifrico; un dispositivo
externo que comunica con el sistema a travs de una direccin. Sin embargo no todos son
dispositivos externos a la placa-base, de hecho algunos dispositivos hardware incluidos en ella
tienen la caracterstica de "Puertos". Por ejemplo, durante mucho tiempo algunos PC's disponan de
un botn frontal sealado "Turbo", con el que se poda cambiar la velocidad de funcionamiento. Este
cambio de la velocidad del reloj tambin puede realizarse por software.

Basta para ello cambiar un par de bits en un "Puerto" instalado en la propia placa-base
(generalmente en el rango 62-6Fh).
Direcciones de puertos
El modelo de direccionamiento del PC ha adoptado dos modelos, segn la naturaleza del dispositivo
a conectar:

Direccionamiento dedicado para dispositivos de media/baja velocidad. Por ejemplo, puertos serie y
paralelo (impresora), teclado, Etc. y direccionamiento mapeado en memoria para dispositivos
rpidos (tpicamente los adaptadores grficos).

Respecto a los dispositivos de direccionamiento dedicado, desde la introduccin del IBM-PC, es


costumbre que determinados dispositivos muy comunes se conecten mediante puertos de
direcciones determinadas.

Puede observarse que para un mismo perifrico se tienen varias direcciones (un "rango"). La razn
es que estos dispositivos tienen varios registros y/o son programables, para lo que disponen de
registros especiales (cada registro de un Byte tiene una direccin, y estas son correlativas).

Por ejemplo, el controlador de puerto serie de los primeros PCs era un circuito integrado 8250 de
National Semiconductor; que dispone de 8 registros, aunque los datos se reciben y transmiten por
uno de ellos, el resto sirve para programar y controlar el funcionamiento del chip.

Respecto a las asignaciones "Estandar" de algunos puertos, es pertinente hacer algunas


observaciones:
En realidad IBM defini de forma distinta las direcciones de puerto de las interfaces de impresora en
los PC monocromo y en los de color. Las asignaciones fueron las siguientes:

Puerto Monocromo Color


LPT1 3BC-3BFh 378-37Fh
LPT2 378-37Fh 278-27Fh
LPT3 278-27Fh ---

En lo referente a los puertos serie, durante la secuencia inicial de identificacin del hardware, la BIOS
realiza una bsqueda de dispositivos de E/S por direcciones en un orden determinado, y les asigna un
nombre lgico segn el orden de aparicin. En el caso de los puertos serie el orden suele ser el
siguiente:

Puerto Direccin
COM1 3F8-3FFh
COM2 2F8-2FFh
COM3 3E8-3EFh
COM4 2E8-2EFh
Los usuarios de Windows 98 pueden comprobar la asignacin de puertos del sistema mediante la
utilidad msinfo032.exe (generalmente en el directorio C:\Archivos de programa\Archivos
comunes\Microsoft Shared). Los usuarios de Linux pueden consultarse en el fichero /proc/ioports
mediante el comando cat /proc/ioports.

Las direcciones mapeadas en memoria se eligieron para algunos dispositivos como los adaptadores
grficos, que requeran mover grandes cantidades de datos muy rpidamente.

Con objeto de no causar conflictos con la RAM general, algunas de estas direcciones fueron mapeadas
desde el principio por los diseadores de IBM, fuera de la denominada memoria convencional. Es
decir, fuera del espacio de los 640 KB que podan utilizarse en los primeros PC's para Sistema y
programas de aplicacin. Por ejemplo, el adaptador de video utiliza un rea de memoria de 128 KB
mapeada entre las direcciones A0000-BFFFFh.

Sin embargo, los decodificadores de direcciones de perifricos de los primitivos PC's solo podan
utilizar direcciones de 10 bits para tales accesos, por lo que las direcciones de puertos estaban
constreidas a 210 (1 KB 0000-0400h). En realidad el espacio era an ms pequeo, puesto que los
primeros 256 Bytes estaban copados por algunos dispositivos de la placa-base, resultando que los
dispositivos E/S deban ser mapeados en 768 Bytes. Generalmente se utilizaron fragmentos de 256
Bytes en la forma xxF0-xxFFh, organizados de forma bastante desordenada.

La introduccin del AT ampli estas direcciones a 16. Sin embargo, incluso los 64 KB resultantes eran
un espacio pequeo y de organizacin catica, dado que los nuevos dispositivos se construan de
forma que fueran compatibles con las antiguas placas ISA que solo reconocan direcciones de 10
bits. Incluso las placas para buses posteriores que fueron desarrollados pensando en 64 KB porque
deban ser compatibles hacia atrs con las antiguas placas ISA (que coexistan en las nuevas). El
resultado de todo esto es que, incluso los sistemas actuales con muchos MB. de RAM, deben seguir
lidiando con los puertos a travs de pequeas ventanas de memoria con localizaciones absurdas.
Comunicar con los puertos
Nos detendremos brevemente en analizar los aspectos involucrados en las operaciones E/S con los
puertos desde una doble vertiente: Lgica y fsica; esta ltima relativa a los mecanismos
involucrados en el intercambio.

Aspectos lgicos
El software utilizado depende de la modalidad de direccionamiento (dedicado o mapeado) que se
elija. En el segundo caso, se dispone un amplio repertorio de recursos para mover datos entre los
registros y la memoria (la mayora de las instrucciones del procesador operan de esta forma), as
como de los mecanismos auxiliares de transferencia, como el acceso directo a memoria DMA.

El panorama es distinto cuando se trata de puertos de direccionamiento dedicado. En este caso,


para realizar las operaciones E/S en los procesadores 8088 y descendientes, solo se dispone de dos
instrucciones especficas: IN y OUT. La primera lee un byte del registro de salida del puerto y lo sita
en un registro del procesador; la segunda escribe el contenido de un registro del procesador en un
registro del puerto. Ambas instrucciones permiten dos variaciones sintcticas:
IN acumulador-destino, direccion-de-puerto-origen
IN acumulador-destino, acumulador-origen
OUT direccin-de-puerto-destino, acumulador-origen
OUT acumulador-destino, acumulador-origen

Las dos primeras sitan el dato contenido en el puerto origen en el acumulador-destino, que puede
ser AX o AL. Observe que el puerto puede ser expresado directamente mediante una direccin
(hexadecimal) o mediante un acumulador-origen, que debe ser DX; en este caso, su contenido se
toma como direccin del puerto que se lee.
Las instrucciones OUT sitan el valor contenido en el acumulador-origen, que puede ser AX o AL, en el
puerto destino, que puede ser identificado directamente mediante su direccin hexadecimal, o por el
valor sealado por el acumulador-destino, que debe ser DX.

En el IBM-PC, las direcciones-de-puerto utilizadas en estas instrucciones estn en el rango 00-FFh,


aunque en la prctica solo 00-F7h, porque Intel reserva las direcciones F8-FFh para el coprocesador
matemtico.

En cambio, si se utiliza la direccin contenida en el registro DX el rango de direcciones puede


moverse en el rango 0000-FFFFh.

Por supuesto, cualquier programa que quiera utilizar puertos deber emplear directa o
indirectamente estas dos instrucciones ensamblador, aunque en muchos casos no es imprescindible
enredarse en demasiados detalles.

Los usuarios de DOS pueden utilizar servicios del Sistema; concretamente la interrupcin 21h que
realiza operaciones de E/S con puertos (utilizando IN y OUT por supuesto). Por ejemplo, las
instrucciones: MOV DL,7 MOV AH,2 INT 21 provocan un pitido en el sistema bajo DOS. La explicacin
es la siguiente: La ltima instruccin invoca una interrupcin software nmero 33 (21h) que, como
hemos indicado, corresponde a los servicios del DOS.

Cuando esto ocurre, se comprueba el contenido del registro AH, que en este caso es 2 (valor
previamente establecido en la segunda instruccin), lo que indica que debe escribirse un carcter en
pantalla (un dispositivo de salida); en este caso, el carcter que se enva al puerto es el contenido del
registro DL, que previamente se ha establecido en el valor 7 con la primera instruccin. El 7 es el
valor BELL ASCII; cuando se intenta mostrar este carcter, se produce un pitido en el altavoz del
sistema.
Los dems Sistemas disponen de utilidades anlogas. Por ejemplo, los sistemas Windows disponen
de una DLL especfica para este tipo de servicios.

Aspectos fsicos
El procedimiento que se sigue el procesador para las E/S hacia puertos, es siempre el mismo: Poner
el dato en el bus de datos y la direccin en el de direcciones.

Como indicamos a continuacin, el sistema sabe que se trata de una direccin de memoria (real o
de puerto mapeado) o de un puerto de direccin dedicada, y cul es la accin esperada (lectura o
escritura) porque se dispone de 4 lneas especficas en el bus de control.

IOR Orden de lectura para dispositivo E/S conectado al bus, que debe colocar un dato en el bus
de datos.

IOW Orden de escritura para dispositivo E/S, que debe leer el dato situado en el bus.

MEMR Esta seal indica a los dispositivos de memoria que deben colocar un dato en el bus de
datos.

MEMW Seal que indica a los dispositivos de memoria que deben almacenar el dato colocado en
el bus de datos.
3.1.5 Controlador DMA
El mecanismo de acceso directo a memoria est controlado por un chip especfico, el DMAC ("DMA
Controller"), que permite realizar estos intercambios sin apenas intervencin del procesador. En los XT
estaba integrado en un chip 8237A que proporcionaba 4 canales de 8 bits (puede mover solo 1 Byte
cada vez); sus direcciones de puerto son 000-00Fh. Posteriormente en los AT se instalaron dos de
estos integrados y las correspondientes lneas auxiliares en el bus de control.

En contra de lo que podra parecer, el resultado no fue disponer de 8 canales, porque el segundo
controlador se colg en "Cascada" de la lnea 4 del primero (ms adelante se explica este concepto
). Los canales del segundo DMAC est asignado a las direcciones 0C0-0DFh y son de 16 bits. Pueden
mover 2 Bytes (de posiciones contiguas) cada vez.

Cada canal tiene asignada una prioridad para el caso de recibirse simultneamente varias peticiones
(los nmeros ms bajos tienen prioridad ms alta). Pueden ser utilizados por cualquier dispositivo que
los necesite (suponiendo naturalmente que est diseado para soportar este modo de operacin).

Cada sistema los asigna de forma arbitraria, pero hay algunos cuya asignacin es estndar.

Canal Uso
En los primitivos PCs estaba dedicado al refresco de memoria. En los sistemas actuales est
0
libre.
1 Libre: Generalmente a dispositivos SDLC [3] (codificadores de audio)
2 Controlador de disquete
3 Controlador puerto de impresora ECP [2]
4 Libre en los XT. Ocupado en los AT (segundo controlador DMAC)
5 Libre (AT)
6 Libre (AT)
7 Libre (AT)
Nota: El Sistema Windows 98 incluye el programa MSINFO32.EXE con el que se pueden comprobar
muchas caractersticas del sistema, incluyendo la asignacin de canales DMA. Los usuario de Linux
pueden utilizar el comando dmesg | grep -i dma para obtener una relacin de los dispositivos del
sistema que, en principio, estn habilitados para utilizar este tipo de transferencias. Generalmente
la relacin contiene como mnimo los dos canales IDE (ide0 e ide1) y la unidad de disco (hda).

3.1.6 EL CIRCUITO TEMPORIZADOR


El circuito electrnico que ms se utiliza tanto en la industria como en circuitera comercial, es el
circuito temporizador o de retardo, dentro de la categora de temporizadores, cabe destacar el ms
econmico y tambin menos preciso consistente en una resistencia y un condensador, a partir de
aqu se puede contar con un sinfn de opciones y posibilidades. En este tutorial se tratarn unos
tipos sencillos para adquirir conocimiento de cmo conseguir un retardo en un sistema que no
requiera gran precisin y terminaremos por analizar un temporizador de mayores prestaciones y
precisin.

Cuando necesitamos un temporizador, lo primero que debemos considerar es la necesidad de


precisin en el tiempo, base muy importante para determinar los elementos que vamos a utilizar en
su concepcin y diseo.

Como se ha mencionado anteriormente un temporizador bsicamente consiste en un elemento que


se activa o desactiva despus de un tiempo ms o menos preestablecido. De esta manera podemos
determinar el parmetro relacionado con el tiempo que ha de transcurrir para que el circuito
susceptible de temporizarse, se detenga o empiece a funcionar o simplemente cierre un contacto o
lo abra.
El ms sencillo, el ms simple de los retardos, requiere de una resistencia de cierto valor y un
condensador de considerable capacidad.

Veamos, se necesita un retardo en una mquina cizalla de corte, la cual conlleva cierto riesgo de
accidentar al operario que la maneja.

Necesitamos un sistema de seguridad para que slo cuando el operario est fuera de peligro, la
cuchilla pueda bajar.

Otro sistema de seguridad, consiste en producir un retardo y al mismo tiempo un sonido o luz
intermitente de aviso.

El primer caso, se puede lograr con la combinacin de unos fines de carrera y un par de pulsadores,
localizados fuera del recorrido de la cuchilla y sus alrededores.

Para el segundo punto, podemos optar por un diodo rectificador D1, una resistencia R1 y un
condensador C1. El montaje sumamente sencillo se muestra en la figura.
A la hora de elegir el condensador, es conveniente considerar su tamao y siempre que sea posible
debera optarse por un modelo electroltico (de ah el uso del diodo), como digo electroltico debido
esencialmente a la mayor capacidad y menor tamao, cosa que en algunos casos no es posible,
utilizando en tal caso uno de los no polarizados industriales de unos 8 a 12 f y por seguridad 400V,
los que suelen utilizar en los motores de las lavadoras o frigorficos.

Bien, veamos que ocurre cuando se aplica una tensin a la figura1 a, la corriente al atravesar el diodo
D1, se rectifica a media onda, esto la reduce aproximadamente a la mitad, esta tensin se enfrenta
al paso de la resistencia R1, que le restringe su paso a un valor previsto por el diseador.

A la salida de R1, la tensin se precipita para cargar el condensador C1, que es el camino que menor
resistencia le ofrece y, ese tiempo de carga, justamente es el tiempo que se pretende controlar, ya
que durante ese tiempo de carga, la corriente no fluir ms all del condensador. Hay que tener en
cuenta que el tiempo de carga, no representa ms que dos tercios (2/3) de la capacidad total de C,
rebasada la cual, la corriente empezar a fluir hacia el siguiente elemento conductor que encuentre,
terminando as el retardo.

De lo expuesto, se puede asegurar que la corriente que atraviesa el circuito, recorre dos caminos; uno
el representado por la lnea de trazos (Ic) durante los primeros 2/3 de carga, y otro, el de la salida
(Id). La salida puede conectarse a un rel que se encargar de producir el efecto deseado
conectar/desconectar, segn lo previsto. Este sistema se estuvo utilizando hasta los aos 70 en
cierto control de los ferrocarriles de Espaa, en el sistema de seguridad llamado 'hombre muerto'
Este caso digamos que es el directo, tambin se puede utilizar una forma ms, digamos sofisticada,
a esta se conecta el rel RL, en serie con la resistencia R1, a la cual se le calcular su valor, de
manera que la corriente que la atraviese, active el rel slo cuando el condensador C, se haya
cargado. la tensin de trabajo del rel deber ser la que corresponda a la tensin nominal de
alimentacin del circuito, para evitar que se queme cuando se active mediante la corriente de paso
en carga.
En ambos circuitos, se percibe que el control no es tal, ya que la carga del condensador se ve
influenciada por muchos imponderables, adems de poco fiable. Se necesita un mayor control y
rango de tiempos.
La solucin puede estar en los transistores que permiten un mayor control de los diferentes
parmetros. Debido al control de ganancia y paso de corriente que nos permite el transistor y
mediante un montaje adecuado, podemos lograr una mejora en los tiempos y por lo tanto ms
fiabilidad, al utilizar condensadores ms pequeos.

la bscula formada por T1 y T2 a los que se ha aadido un tercer transistor para mejorar la carga del
rel a su salida. El funcionamiento de la bscula determina mediante el ajuste de los
potencimetros P1 y P2 los tiempos de basculamiento obteniendo un mejor control de amplitud del
tiempo de retardo.

No obstante y a pesar de lograr una considerable reduccin en la capacidad de los condensadores,


lo que conlleva una mayor seguridad y control, no es bastante fiable en algunos casos y la industria
necesitaba algo ms compacto que le dotara de tiempos mas largos y fiables. Esto se lograra
mediante el circuito integrado temporizador A555.
EL TEMPORIZADOR A 555
3.1.7. Controladores de video

Tarjetas de vdeo
La tarjeta de video, (tambin llamada controlador de video), es un componente electrnico requerido
para generar una seal de video que se manda a una pantalla de video por medio de un cable. La
tarjeta de video se encuentra normalmente en la placa de sistema de la computadora o en una placa
de expansin.

La tarjeta grfica rene toda la informacin que debe visualizarse en pantalla y acta como interfaz
entre el procesador y el monitor; la informacin es enviada a ste por la placa luego de haberla
recibido a travs del sistema de buses.

Una tarjeta grfica se compone, bsicamente, de un controlador de video, de la memoria de pantalla


o RAM video, y el generador de caracteres, y en la actualidad tambin poseen un acelerador de
grficos.

El controlador de video va leyendo a intervalos la informacin almacenada en la RAM video y la


transfiere al monitor en forma de seal de video; el nmero de veces por segundo que el contenido
de la RAM video es ledo y transmitido al monitor en forma de seal de video se conoce como
frecuencia de refresco de la pantalla. Entonces, como ya dijimos antes, la frecuencia depende en
gran medida de la calidad de la placa de video.

Los tipos de placas de video


Adaptador de Pantalla Monocromo (MDA):
Los primeros PC solo visualizaban textos. El MDA contaba con 4KB de memoria de video RAM que le
permita mostrar 25 lneas de 80 caracteres cada una con una resolucin de 14x9 puntos por
carcter.

Tarjeta grfica Hrcules:


Con sta tarjeta se poda visualizar grficos y textos simultneamente. En modo texto, soportaba una
resolucin de 80x25 puntos. En tanto que en los grficos lo haca con 720x350 puntos, dicha tarjeta
serva slo para grficos de un solo color.

La tarjeta Hrcules tena una capacidad total de 64k de memoria video RAM. Posea una frecuencia
de refresco de la pantalla de 50HZ.

Color Graphics Adapter (CGA):


La CGA utiliza el mismo chip que la Hrcules y aporta resoluciones y colores distintos. Los tres colores
primarios se combinan digitalmente formando un mximo de ocho colores distintos. La resolucin
vara considerablemente segn el modo de grficos que se est utilizando, como se ve en la siguiente
lista:

160 X 100 PUNTOS CON 16 COLORES


320 X 200 PUNTOS CON 4 COLORES
640 X 200 PUNTOS CON 2 COLORES
La tarjeta EGA:

Enchanced Graphics Adapter (EGA). Se trata de una tarjeta grfica superior a la CGA. En el modo
texto ofrece una resolucin de 14x18 puntos y en el modo grfico dos resoluciones diferentes de
640x200 y 640x350 a 4 bits, lo que da como resultado una paleta de 16 colores, siempre y cuando
la tarjeta est equipada con 256KB de memoria de video RAM.

La tarjeta VGA:
La Video Graphics Adapter (VGA) signific la aparicin de un nuevo estndar del mercado. Esta tarjeta
ofrece una paleta de 256 colores, dando como resultado imgenes de colores mucho ms vivos. Las
primeras VGA contaban con 256KB de memoria y solo podan alcanzar una resolucin de 320x200
puntos con la cantidad de colores mencionados anteriormente. Primero la cantidad de memoria
video RAM se ampli a 512KB, y ms tarde a 1024KB, gracias a sta ampliacin es posible
conseguir una resolucin de, por ejemplo, 1024x768 pixeles con 8 bits de color. En el modo texto la
VGA tiene una resolucin de 720x400 pixeles, adems posee un refresco de pantalla de 60HZ, y con
16 colores soporta hasta 640X480 puntos.

La tarjeta SVGA

La tarjeta SVGA (Super Video Graphics Adapter) contiene conjuntos de chips de uso especial, y ms
memoria, lo que aumenta la cantidad de colores y la resolucin.
El acelerador grfico:
La primera solucin que se encontr para aumentar la velocidad de proceso de los grficos consisti
en proveer a la tarjeta grfica de un circuito especial denominado acelerador grfico.

El acelerador grfico se encarga de realizar una serie de funciones relacionadas con la presentacin
de grficos en la pantalla, que de otro modo, tendra que realizar el procesador.

De esta manera, le quita tareas de encima a este ltimo, y as se puede dedicar casi exclusivamente
al proceso de datos. La velocidad con que se ejecutan las aplicaciones basadas en Windows para el
manejo de grficos se incrementa muy notablemente, llegando al punto (con algunas placas) de no
necesitar optimizar la CPU. El estndar hoy da est dado por los aceleradores grficos de 64 bits.
Tambin, aunque no tan comunes, hay aceleradores grficos de 128 bits.

El coprocesador grfico:
Posteriormente, para lograr una mayor velocidad se comenzaron a instalar en las tarjetas de video
otros circuitos especializados en el proceso de comandos grficos, llamados coprocesadores grficos.
Se encuentran especializados en la ejecucin de una serie de instrucciones especficas de generacin
de grficos. En muchas ocasiones el coprocesador se encarga de la gestin del ratn (mouse) y de las
operaciones tales como la realizacin de ampliaciones de pantalla.
Aceleradores grficos 3D:

Los grficos en tres dimensiones son una representacin grfica de una escena o un objeto a lo largo
de tres ejes de referencia, X, Y, Z, que marcan el ancho, el alto y la profundidad de ese grfico. Para
manejar un grfico tridimensional, ste se divide en una serie de puntos o vrtices, en forma de
coordenadas, que se almacenan en la memoria RAM. Para que ese objeto pueda ser dibujado en un
monitor de tan slo dos dimensiones (ancho y alto), debe pasar por un proceso que se llama
renderizacin.

La renderizacin se encarga de modelar los pixeles (puntos), dependiendo de su posicin en el


espacio y su tamao. Tambin rellena el objeto, que previamente ha sido almacenado como un
conjunto de vrtices. Para llevar a cabo sta tarea, se agrupan los vrtices de tres en tres, hasta
transformar el objeto en un conjunto de tringulos.

Estos procesos son llevados a cabo entre el microprocesador y el acelerador grfico. Normalmente, el
microprocesador se encarga del procesamiento geomtrico, mientras que el acelerador grfico del
rendering. En pocas palabras, el microprocesador genera el objeto, y el acelerador grfico lo "pinta".
El gran problema que enfrenta el microprocesador es que al construir los objetos 3D a base de
polgonos, cuanto ms curvados e irregulares se tornan los bordes del objeto, mayor es la cantidad de
polgonos que se necesitan para aproximarse a su contextura. El problema es an peor si adems
dicho objeto debe moverse, con lo cul hay que generarlo varias decenas de veces en un lapso de
pocos segundos.
Los tipos de memorias que se usan en las tarjetas de video:
La memoria usada en una tarjeta de video es un elemento extremadamente importante, ya que
afecta la performance del producto en cuanto a alta resolucin y cantidad de colores se refiere.

DRAM:
"DRAM" es el acrnimo de "Dynamic Random Access Memory". El termino Dynamic significa que la
memoria ser accedida dinmicamente, es decir cada perodos cortos de tiempo, para no perder
informacin. Esto se denomina refresco. Para acceder a este tipo de memoria se debe especificar la
fila, la columna y si se desea realizar una lectura o una grabacin.

Fast Page Mode (FPM) DRAMs:


Las memorias de pgina rpida son las ms usadas actualmente. Son capaces de trabajar ms
rpidamente que las memorias de la tecnologa anterior. Para acceder a este tipo de memoria se
debe especificar la fila (pgina) y seguidamente la columna. Para los sucesivos accesos de la misma
fila solo es necesario especificar la columna quedando la fila seleccionada desde el primer acceso.
Esto hace que el tiempo de acceso en la misma fila (pgina) sea mucho ms rpido.

Extended Data Out (EDO) DRAMs:


La memoria de salida de datos extendida es ms rpida que la memoria FPM. La ventaja de la
memoria EDO es que mantienen los datos en la salida hasta el siguiente acceso a memoria. Esto
permite al procesador ocuparse de otras tareas sin tener que atender a la lenta memoria. Esto es, el
procesador selecciona la posicin de memoria, realiza otras tareas y cuando vuelva a consultar la
DRAM los datos en la salida seguirn siendo vlidos.
3.1.8. Controlador de interrupciones

Controlador PIC
Las peticiones hardware de interrupcin del PC son manejadas por un chip, conocido como PIC#1
("Programmable Interrupt Controller"). Originariamente era un 8259A, que puede manejar 8
peticiones (IRQ0/IRQ7), pero pronto se hizo evidente que eran un nmero excesivamente corto, por lo
que en 1984 IBM aadi un segundo controlador PIC#2 en el modelo AT, que poda manejar las
peticiones IRQ8 a IRQ15, aunque las interrupciones utilizables resultantes no fuesen de 16 como
cabra suponer, por las razones apuntadas en el prrafo anterior.

Nivel de prioridad
El PIC dispone de 16 niveles de prioridad, numerados del 0 al 15, de forma que los de nmero ms
bajo se atienden antes que los de nmero ms alto. La asignacin a cada nivel es como sigue:

Nivel Asign. Nivel Asign. Nivel Asign. Nivel Asign.

0 NMI 1 IRQ0 2 IRQ1 3 IRQ8

4 IRQ9 5 IRQ10 6 IRQ11 7 IRQ12

8 IRQ13 9 IRQ14 10 IRQ15 11 IRQ3

12 IRQ4 13 IRQ5 14 IRQ6 15 IRQ7


Como puede verse, la prioridad ms alta se asigna a las interrupciones no enmascarables (NMI ), a
las que nos referimos ms adelante. A continuacin se atienden IRQ0 e IRQ1; asignadas como
hemos visto al cronmetro del sistema y al teclado (el cronmetro no puede ser interrumpido por
nadie porque perdera la hora).

Despus se atienden las peticiones IRQ8 a IRQ15 del controlador esclavo, que hereda la prioridad de
IRQ2 de la que est colgado (en realidad no existe IRQ2). A continuacin se atienden las IRQ3 a
IRQ7 de PIC#1. Las peticiones de prioridad ms baja son las del controlador estndar de disquetes
(IRQ6) y las del puerto de impresora LPT1 (IRQ7).

Fsicamente, el 8259A es un chip de 28 patillas, 8 de las cuales conectan con las lneas IRQ0-IRQ7;
ocho para el bus de datos (D0-D7), una entrada INTA ("Interrupt Acknowledge") y una salida INTR
("Interrupt Request"). Aparte de otras auxiliares, como tensin de alimentacin y masa. Como
veremos a continuacin, cuando el 8259A recibe una seal IRQ, activa la seal INTR que es recibida
por el procesador.

Cuando este responde con un INTA, pone en el bus de datos un byte en el rango 0/256, que es
identificado a su vez por el procesador como un nmero de interrupcin.

Desde el punto de vista lgico, PIC #1 responde a las direcciones 020h-021h, mientras que PIC#2 lo
hace en 0A0h-0A1h. Cada PIC dispone de tres registros de 1 byte; IRR, ISR e IMR, que en conjunto
gobiernan las decisiones del dispositivo:
Registro de solicitud de interrupcin IRR ("Interrupt Request Register"). Cada bit de este registro
controla el estado de una lnea IRQ. Cuando se detecta una peticin en una de estas lneas, el bit
correspondiente del IRR es pueto a 1.
Registro de interrupciones activas ISR ("In Service Register"). Cada bit indica si ya existe una
interrupcin activada en la lnea correspondiente.
Registro de mscara de interrupciones IMR ("Interrupt Mask Register"). Tambin aqu cada bit
corresponde a una lnea IRQ, e indica si esta permitida un interrupcin de ese nivel en ese momento.

El PIC es un dispositivo complejo que realiza varias tareas; a continuacin se muestra un resumen
de ellas:

Puesto que existen muchos dispositivos que pueden solicitar interrupciones, es responsabilidad del
PIC priorizarlas segn el esquema indicado en el punto anterior, cuando existen varias IRQ's
simultneas.

Despus de enviar una solicitud de interrupcin y el procesador contesta que est listo para
atenderla, debe enviar un nmero de interrupcin (nmero de vector).

Mantiene un registro de que se est procesando una interrupcin.

Cuando esto sucede, no enva ms peticiones del mismo dispositivo al procesador hasta que este le
responde con una seal EOI ("End Of Interrupt"), indicando que la rutina de servicio precedente ha
terminado, o puede aceptar otra interrupcin.
Puede enmascarar de forma selectiva cualquiera de las 8 IRQ's que tiene conectadas (como se ver
ms adelante, es la nica forma de enmascarar las interrupciones no enmascarables).

El 8259A tiene distintos modos de operacin, uno de los cuales es el utilizado por los diseadores
del PC; esta seleccin se realiza va software en los momentos iniciales.

Tambin se decide en este momento que nmero de interrupcin deber devolver el PIC en
respuesta a las seales recibidas en las lneas IRQ.

Puntos importantes a destacar es que, como se ha sealado, se trata de un dispositivo programable;


que esta programacin es realizada por el BIOS en la fase de inicio, y que el PIC es una parte
fundamental del mecanismo de excepciones hardware.

Patillas del procesador


Otro elemento que interviene en el mecanismo de excepciones son ciertas patillas del
procesador. Todos los miembros de la saga 8088 disponen de dos patillas, designadas INTR y NMI,
para este servicio especfico. Sirven respectivamente para atender las interrupciones
enmascarables y no enmascarables (nos referimos a ellas inmediatamente). A su vez, el procesador
utiliza ciertas seales en algunas de sus patillas para generar un ciclo INTA ("Interrupt
Acknowledge"), que sirve para notificar al PIC que ha recibido la interrupcin.

Tipos de interrupcin
Atendiendo a su origen, en el PC existen tres tipos de interrupciones: Interrupciones hardware;
interrupciones software, y excepciones del procesador.
Las interrupciones hardware ocurren cuando un dispositivo necesita atencin del procesador y genera
una seal elctrica en la lnea IRQ que tiene asignada. Esta seal es recogida y procesada por el
controlador de excepciones PIC antes de ser enviada al procesador, lo que puede realizarse de dos
formas, segn el tipo de interrupcin sea enmascarable o no enmascarable.

Interrupcin enmascarable
Interrupcin enmascarable significa que, bajo control del software, el procesador puede aceptar o
ignorar (enmascarar) la seal de interrupcin. Para ello se enva una seal a la patilla INTR , y el
procesador la atiende o la ignora en funcin del contenido de un bit (IF) en un registro (FLAGS) que
puede estar habilitado o deshabilitado .

En el primer caso, cuando se recibe la seal, el procesador concluye la instruccin que estuviese en
proceso y a continuacin responde con una combinacin de seales en algunas de sus patillas
componiendo una sucesin de dos seales INTA ("Interrupt Acknowledge").

La primera seal es simplemente un aviso; la segunda es una peticin para que el PIC coloque en el
bus de datos un Byte con el nmero de interrupcin, de forma que el procesador pueda localizar el
servicio solicitado.

El valor recibido (0-255) es multiplicado por 4 para calcular la direccin del vector correspondiente en
la tabla de vectores de interrupcin, lo que se realiza mediante un desplazamiento binario de dos
posiciones a la izquierda.
A continuacin, el procesador salva en la pila los valores del registro de estado, del contador de
programa (PC) y del segmento de cdigo (CS); deshabilita el bit IF del registro de estado, para que la
interrupcin no pueda ser molestada con una nueva interrupcin enmascarable hasta que sea
especficamente permitido, y finalmente ejecuta el servicio.

La penltima secuencia de la rutina de servicio es enviar una seal de que la interrupcin ha


terminado (EOI) para que el PIC pueda seguir enviando interrupciones. A continuacin debe restaurar
los registros a su estado inicial (existente antes de que se produjera la interrupcin).

La seal de terminacin del servicio de la interrupcin EOI ("End of interrupt") es la siguiente


secuencia: MOV DX, PIC0; MOV AL, EOI; OUT DX, AL

La primera instruccin mueve el contenido PIC0 al registro DX (PIC0 es el nemnico de la direccin


ms baja de puerto A0 = 0).

La segunda mueve el valor EOI (nemnico del valor 20h) al registro AL.

La tercera es una sentencia de escritura a puerto; escribe el contenido del registro AL (el valor EOI
puesto en la sentencia anterior) en el puerto sealado por el contenido del registro DX (establecido en
la primera instruccin).
Para facilitar el manejo de interrupciones, el 8088 y sucesores disponen de algunas instrucciones
especficas:
IRET Retorno de interrupcin ("Interrupt Return"). Recupera de la pila el contador de programa PC;
el segmento de cdigo CS (lo que supone devolver el programa al punto de ejecucin original), y el
registro de estado FLAGS (lo que supone devolver las interrupciones enmascarables al estado inicial).
CLI Limpiar la interrupcin ("Clear Interrupt"); pone a cero el registro IF, deshabilitando las
interrupciones enmascarables.
STI Es la instruccin opuesta ("Set Interrupt") pone a 1 el registro IF habilitando las interrupciones
enmascarables.

La idea importante a resaltar aqu, es que el PIC asocia un nmero entre 0 y 255 a cada
peticin. Este nmero, que se conoce como nmero de interrupcin, no debe ser confundido con el
nmero de lnea IRQ's que realiz la solicitud. El nmero de interrupcin sirve para identificar el
servicio mediante la tabla IDT. Una vez ejecutado el servicio, deben dejarse las cosas como estaban
para que el programa original pueda continuar su ejecucin.

Interrupcin no enmascarable significa que la interrupcin no puede ser deshabilitada por


software. Este tipo de interrupciones ocurren cuando se recibe una seal en la patilla NMI
("Nonmaskable Interrupt") del procesador. Se reservan para casos en que es crtica la respuesta, por
ejemplo que se detecte un error de paridad en la memoria. Adems son de prioridad ms alta que
las enmascarables.

Nota: La nica forma de enmascarar estas interrupciones es a travs de circuitos externos al


procesador, por ejemplo a nivel del PIC.
Cuando el procesador recibe una de estas instrucciones no se genera ningn ciclo de reconocimiento
de la instruccin (INTA), y el procesador le asigna un 2 como nmero de excepcin.

Interrupciones software
Los procesadores Intel de la gama x86 y compatibles, disponen de una instruccin INT que permite
generar por software cualquiera de los 256 tipos de interrupcin anteriormente descritos .

El proceso seguido es exactamente el mismo que si se recibe una interrupcin hardware en la patilla
INTR, salvo que en este caso se conoce el tipo de interrupcin, y no se requiere ningn ciclo INTA. Por
ejemplo, en lenguaje ensamblador, la instruccin INT 21 invoca la interrupcin 33d (21h), que en MS-
DOS es la llamada a los servicios del Sistema.

Este tipo de interrupciones son de prioridad ms alta que las de hardware (enmascarables y no
enmascarables), de forma que si se recibe una interrupcin hardware mientras que se ejecuta una
software, esta ltima tiene prioridad.

Este tipo de interrupciones son utilizadas tanto por el Sistema Operativo como por los programas de
usuario que pueden instalar las suyas particulares (hemos sealado, que algunas de las 255
posiciones de la tabla de vectores de interrupcin estn desocupadas). Precisamente, aquellas
posiciones de la IDT que sealan a posiciones dentro de la ROM-BIOS (por encima de la direccin
F0000h) se refieren a interrupciones relacionadas con servicios de la BIOS, mientras que las situadas
en la zona de memoria convencional, se refieren a interrupciones instaladas por el Sistema o los
programas de aplicacin.
Excepciones del procesador
Durante el funcionamiento del procesador pueden ocurrir circunstancias excepcionales; es usual
citar como ejemplo el caso de una divisin por cero. En estos casos, el procesador genera una
excepcin, que es tratada como si fuese una interrupcin software, con la diferencia de que el
nmero de interrupcin asociado depende del tipo de excepcin.
En el caso de la divisin por cero el nmero asociado es cero. Este era el nico tipo de excepcin de
procesador prevista en el 8088, pero en los modelos sucesivos de la saga x86 y Pentium esta
posibilidad fue amplindose paulatinamente.

Orden de prioridad
Las interrupciones tienen un orden de prioridad, de forma que si ocurren dos de forma simultnea es
atendida la de prioridad ms alta. El orden en que se atienden es el siguiente:
1: Excepciones del procesador.
2: Interrupciones software.
3: Interrupciones hardware no enmascarables.
4: Interrupciones hardware enmascarables.

Evolucin
El sistema de interrupciones es una excepcin en lo que a evolucin se refiere. A partir de la
introduccin del segundo controlador 8259A en 1.984, el diseo ha permanecido invariable. La
razn es que su modificacin supondra un cambio demasiado drstico en la arquitectura del PC,
con un parque de millones de sistemas y perifricos instalados con millones de programas y
Sistemas Operativos funcionando que no podran ser trasladados "tal cual" a las nuevas mquinas .
Puede decirse que desde su nacimiento, el PC arrastraba ciertas carencias congnitas, que podan
resumirse en escasez de Lneas de acceso directo a memoria DMA's (; lneas de interrupciones IRQ's;
direcciones de puertos, y memoria convencional .

El resultado era que la configuracin de los primeros sistemas era una pesadilla para los
instaladores, que deban configurar manualmente los dispositivos instalados poniendo y quitando los
fastidiosos "Jumpers" . A pesar de todo, muchas veces el resultado era que sencillamente no poda
instalarse el nuevo dispositivo porque los canales DMA o lneas IRQ que podan seleccionarse
estaban ya ocupadas por otros.

Como consecuencia de tales deficiencias, en una conferencia sobre hardware para Windows
celebrada en marzo de 1.993, Microsoft e Intel propusieron un nuevo estndar que intentaba
simplificar el problema. Conocido como Plug and Play (PnP), enchufar y usar (precisamente el
"sueo" de los instaladores en la poca), que se basa en varias premisas.

La principal, que los dispositivos fueran configurables por software mediante un programa especial
de "Set-up". Adems tanto el hardware como el software (controladores de dispositivos cargados por
el Sistema), deberan ser reconfigurables dinmicamente para adaptarse a los cambios de
configuracin. Por ejemplo, insertar o retirar un dispositivo PC-Card de un bus PCMCIA .

Compartir IRQs
La especificacin PnP antes comentada, aunque simplificaba las cosas, en realidad no resolva el
problema de fondo: la escasez de ciertos recursos, principalmente lneas de interrupcin. Por lo que
al desarrollar la interfaz PCI Intel incluy la posibilidad de que estos dispositivos pudieran compartir
la misma IRQ.
Puede apreciarse que los dispositivos PCI comparten las IRQ11 e IRQ5. Como es habitual, las
controladoras IDE primaria y secundaria, identificadas aqu como ide0 e ide1, utilizan IRQ14 e
IRQ15. Los dispositivos identificados como eth0 y eth1 son sendas tarjetas de red. ttyS03 es un
puerto serie cuya UART es una 16550. Y esta se refiere al tipo de controladora de conexin de los
dispositivos PCMCIA (se trata de un equipo porttil que dispone de este tipo de bahas).

Interrupciones en Windows
La descripcin anterior corresponde a lo que ocurre en el hardware, o lo que es lo mismo, en una
aplicacin trabajando en modo real ; es la descripcin clsica del mecanismo de interrupciones de
una aplicacin bajo MS-DOS.

Hemos sealado que en los sistemas Windows, cada aplicacin corre en una mquina virtual MV, de
modo que est ms alejada del hardware que las aplicaciones que se ejecutan en modo real. En este
caso, las aplicaciones interactan con dispositivos virtuales VDs ("Virtual devices") a travs de
controladores virtuales de dispositivos VxDs.

En concreto, el controlador PIC es virtualizado por el VPICD ("Virtual PIC Device"); este es un
controlador virtual proporcionado de forma estndar por Windows que emula las funciones del
autntico controlador programable de interrupciones. Esta simulacin implica reflejar las
interrupciones en las mquinas virtuales y simular E/S, por ejemplo, reconocer cuando una MV emite
un final de interrupcin EOI ("End of interrupt").

Lo mismo que ocurre en modo real, durante la inicializacin del controlador virtual VPICD, se establece
un manejador de excepciones por defecto para cada peticin de interrupcin (IRQ). Estos
manejadores determinan que mquina virtual ser afectada y con qu interrupcin. Tambin arbitran
los posibles conflictos cuando diversas mquinas virtuales intentan desenmascarar la misma
interrupcin.
Cualquier interrupcin no enmascarada cuando se inicia Windows es considerada una interrupcin
global. Este tipo de interrupciones sern reflejadas en la mquina virtual que est en ejecucin en
ese momento (a su vez la MV puede enmascarar o no enmascarar esta IRQ).

Si una MV desenmascara una IRQ que fue enmascarada cuando se inici Windows, es declarada
propietaria de dicha interrupcin, y la IRQ ser reflejada exclusivamente en su mquina propietaria
(si alguna otra MV intenta desenmascarar dicha interrupcin, Windows terminar la segunda MV, y
puede sealar la necesidad de reiniciar el sistema).

Si algn otro VxD virtualiza una peticin IRQ, es su responsabilidad determinar que MV debe recibir
las interrupciones y arbitrar los posibles conflictos. Adems, el controlador por virtual por defecto
VPICD dejar de proporcionar soporte para dicha IRQ.

Las interrupciones, tal y como indica su nombre, tienen como funcin interrumpir en medio de un
procedimiento, ejecutar un trozo de cdigo y continuar con lo que se estaba haciendo.

De esta manera la CPU se ahorra de ir preguntado todo el rato a los diferentes perifricos si
necesitan su ayuda (polling). Hay de varios tipos, las que son ejecutadas por el hardware, las
del Sistema Operativo y las iniciadas por el sistema (BIOS). Dentro de estas hay las enmascarable, y
las no enmascarables (NMI).
El B.I.O.S ( Basic Input Output System) tiene una serie de interrupciones, para que cuando utilicemos
alguna de ellas sepamos donde se encuentra. Para eso utilizaremos una tabla que nos servir de
ndice para as obtener la direccin de la rutina. Esta tabla se aloja en la parte ms baja de la
memoria, es decir, en 0000:0000, y tiene una longitud de 256 entrada de 4bytes cada una; 2 bytes
de direccin (segmento) y 2 bytes de desplazamiento (offset), o sea, 1 kb en total.

El Bios dispone de las funciones principales que necesita un programa para la comunicacin con el
hardware del PC y los dispositivos conectados a l.
Hay rutinas de todas clases. Su funcin ms importante, es que permite usar a los programas
diferentes perifricos independientemente de las caractersticas del hardware. Esto nos ahorra
mucho tiempo a la hora de programar para diferentes perifricos. O sea, que el Bios es un sistema de
comunicacin estndar.

También podría gustarte