| Artículos | 01 OCT 1995

Tarjetas de vídeo para bus PCI

Tags: Histórico
ATI GTS Winboost y Winturbo, Matrox MGA Millennium, MiroVideo 22SD, 12PD y 20SD, MiroCrystal 22SD y 20PV avi, Number Nine FX Motion 711, FX Vision 330 e Imagine 128
Eugenio Barahona.

Uno de los principales cuellos de botella al trabajar con entornos gráficos es la presentación en pantalla de las imágenes. Con cualquiera de los productos analizados en esta Prueba Comparativa podrá acelerar, notablemente, el rendimiento gráfico de su ordenador.

Las tarjetas de vídeo o adaptadores gráficos SuperVGA son extensiones al estándar VGA definido hace tiempo por IBM al presentar sus ordenadores PS/2. Como cualquier usuario avanzado de PCs sabe, dentro del espacio de direcciones al cual es capaz de acceder el procesador del ordenador, se ha definido una región destinada a albergar, entre otras cosas, memorias ROM de tarjetas de expansión y la memoria de vídeo de la tarjeta gráfica, ya sea ésta Hercules, MDA, CGA, EGA o VGA.

La memoria de vídeo es, fundamentalmente, memoria RAM situada en el adaptador gráfico del sistema. Dicha memoria contiene un mapa de bits que representa, de forma digital, la imagen que se muestra en el monitor. Ya que los monitores no aceptan, generalmente, una señal digital el contenido del buffer de vídeo debe ser convertido a formato analógico, para lo cual se emplea un chip DAC (Digital to Analog Converter, convertidor de digital a analógico).

En el caso que nos ocupa, las tarjetas VGA convencionales, sitúan su memoria de vídeo en dos posiciones diferentes dependiendo del modo que se encuentra activo en cada momento. De forma general podemos decir que, cuando usamos un modo de texto en color, la memoria de vídeo comienza en la dirección B8000 (con una extensión de 32 KB) mientras que al usar un modo gráfico la dirección de inicio es la A0000 (con una extensión de 64 KB).

Para acceder a los 256 KB de la memoria de la VGA estándar disponiendo de una ventana en la memoria del sistema de, como mucho, 64 KB IBM definió un sistema de acceso al buffer de vídeo mediante planos. De esta forma nos encontramos con que cuatro bytes de la memoria de vídeo comparten la misma dirección de memoria física, accediéndose a cada uno de ellos especificando mediante un puerto de entrada/salida a que plano en concreto vamos a acceder.

En las tarjetas SuperVGA se utiliza un sistema, denominado conmutación de bancos de memoria, mediante el cual es posible tener acceso a cualquier bloque de memoria de la SuperVGA a través de la ventana situada en la dirección A0000 de la memoria del sistema. La longitud de los bancos a los que se tiene acceso depende de la implementación hardware realizada por cada fabricante, siendo típicos los siguientes valores: 64 KB, 32 KB, 16 KB y 4 KB.

Aquellos lectores con conocimientos de programación en lenguaje Ensamblador saben que las instrucciones de entrada/salida de la familia 80x86 de Intel (IN, OUT, INSB, OUTSB, INSW, OUTSW) son lentas, consumiendo cada una alrededor de siete ciclos de CPU, por lo que el cambio frecuente de banco de la SuperVGA suponía un retardo apreciable al utilizar aplicaciones gráficas.

Un remedio para el retardo que implica la conmutación de bancos de la tarjeta gráfica es el uso de un buffer de vídeo lineal. Sin embargo, el bus ISA, tan sólo es capaz de dar acceso a 16 MB de memoria RAM por lo que la implementación de esta técnica no es aconsejable ya que plantearía problemas de incompatibilidad con aquellas máquinas con 16 MB de memoria o más.

La solución a este problema vino de la mano de los buses locales, tanto VESA como PCI. Estos buses, al disponer en su patillaje de los 32 bits del bus de direcciones del procesador, hacen posible mapear la memoria de vídeo en cualquier zona de la memoria RAM física a la que el procesador tiene acceso. De esta forma, si trabajamos con una tarjeta gráfica con 2 MB de RAM, el procesador puede acceder a dicha cantidad de memoria sin necesidad de ejecutar ninguna instrucción de entrada/salida a través de un bloque de memoria contiguo de 2 MB de longitud.

Para mejorar aún más el rendimiento de las SuperVGA, muchos fabricantes han optado por abandonar el uso de direcciones de entrada/salida, utilizando en su lugar un bloque de direcciones de memoria que dan acceso a los registros del chip SuperVGA (esta técnica es idéntica a la utilizada por los procesadores 68000, de Motorola, y se denomina entrada/salida mapeada por direcciones de memoria). Algunos fabricantes de chips SuperVGA que usan las técnicas anteriormente comentadas son S3, Cirrus Logic, ATI Technologies, Trident, Headland Technologies, Matrox y Tseng Labs.

Memoria RAM y VRAM

Actualmente es posible encontrar en el mercado tarjetas gráficas que usan dos tipos de memoria: RAM y VRAM. Para explicar las características que diferencian estos dos tipos de memoria vamos a explicar, de forma breve, como se genera la imagen en el monitor de un ordenador.

Como todos nuestros lectores saben, la imagen que aparece en el monitor es generada por la tarjeta gráfica a una velocidad que oscila entre 50 y 100 imágenes por segundo, dependiendo del tipo de monitor y tarjeta gráfica que usemos. Para generar cada una de estas imágenes, el DAC de la tarjeta gráfica, debe acceder, igual número de veces, a la memoria de la tarjeta gráfica, leyéndola completamente, para convertir los datos en ella almacenada a una señal analógica capaz de atacar la entrada de vídeo del monitor.

Si mientras el DAC está accediendo a la memoria de vídeo, el procesador del ordenador o el chip SuperVGA, desean acceder a dicho recurso serán detenidos, brevemente, hasta que el DAC haya finalizado su acceso. Esto es así ya que, si tuvieran preferencia sobre el DAC la CPU o el chip SuperVGA, el conversor digital-analógico no sería capaz de enviar al monitor la imagen a la velocidad necesaria para producir una imagen estable y sin interferencias.

Como se deduce del párrafo anterior esta situación produce retardos en el funcionamiento de la tarjeta gráfica al usar chips de memoria RAM convencionales. Para subsanar este problema se desarrollaron los chips de memoria VRAM, también denominados de doble puerto. Mediante el uso de estos componentes es posible que, tanto el DAC como el procesador del ordenador o el chip SuperVGA, accedan simultáneamente al buffer de vídeo ya que, cada uno de estos componentes, lo hará mediante un puerto diferente del chip de memoria VRAM no produciéndose, por lo tanto, interferencias entre ambos accesos.

El estándar VESA

Uno de los principales problemas de las tarjetas SuperVGA es que los modos extendidos que soportan, no contemplados por la especificación original de IBM, no son compatibles entre los distintos fabricantes que existen. Estos problemas de incompatibilidad cubren todos los aspectos de la programación de tarjetas gráficas, comenzando por los códigos de los modos de vídeo que hay que utilizar para activar dichos modos mediante la BIOS, hasta la forma en que se accede al buffer de vídeo completo y a la organización de dicho buffer.

Para solucionar todos estos problemas se creó el comité VESA (Video Electronics Standars Association), el cual fue encargado de realizar la especificación de una extensión para la BIOS de los PC que hiciera posible ejecutar cualquier programa, que utilizase los servicios de dicha extensión, sobre cualquier tipo de tarjeta SuperVGA. Hoy en día se encuentra disponible la versión 2.0 de la especificación, la cual incluye soporte para buffers de vídeo lineales y llamadas a las extensiones VESA desde programas ejecutándose en modo protegido.

El comité VESA está trabajando, actualmente, en una extensión a la especificación 2.0 mediante la cual, los fabricantes de hardware, podrán añadir el soporte de funciones específicas de cada chip como, por ejemplo, dibujo de líneas, relleno de zonas de pantalla, copia de bloques de memoria, etc. Se deduce, por tanto, que la compatibilidad con el estándar VESA es una cuestión software más que hardware. Esto es así ya que, para que una VGA sea compatible VESA, tan sólo debe

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información