En este post os voy a hablar de la tarjeta gráfica, una parte fundamental del sistema de video del ordenador.

Las distintas aplicaciones que ejecutamos en nuestro ordenador, envían a la CPU la información que quieren mostrar en pantalla. La CPU se comunica con la tarjeta gráfica y delega en esta la tarea de traducir la información gráfica al formato adecuado para ser presentada en el monitor. Es por ello que este componente es fundamental en el funcionamiento del sistema de video, en realidad, es quien realiza el trabajo duro, liberando a la CPU de la tarea de presentar los gráficos en pantalla.

Dicha tarea requiere manejar gran cantidad de datos y una capacidad de computo considerable. Para poder cumplir con el primer requerimiento, las tarjetas gráficas vienen equipadas con módulos de memoria RAM dedicados. Y para cumplir con el segundo, disponen de la famosa GPU, un procesador gráfico con un número considerable de núcleos, bastantes más que los de la CPU del Sistema.

Tarjeta gráfica

La circunstancia de tener la memoria y el procesador en la misma tarjeta, muy cerquita una de la otra, contribuye también a aumentar la velocidad del tratamiento de la información de video. Además, la GPU tiene acceso directo a la RAM de la tarjeta gráfica. Imaginaros que la GPU tuviera que ir a la RAM del Sistema a recoger los datos de video, teniendo que involucrar a la CPU del Sistema. Lógicamente sería bastante ineficiente.

En cierto modo, salvando las distancias, la tarjeta gráfica es casi una pequeña placa base, con su procesador y memoria. De hecho son ampliamente utilizadas en aplicaciones como la minería de criptomonedas, gracias a la capacidad de computación de las GPUs (recuerda que la GPU tiene muchos más núcleos que la CPU).

Tecnologías de tarjetas gráficas

Antes de explicar el funcionamiento de la tarjeta gráfica, creo conveniente tener una visión general de las distintas tecnologías de video. Como viene siendo habitual siempre que hablo de tecnologías, seguiré un orden cronológico. Trataré algunas ya obsoletas para acabar en las tecnologías más actuales.

MDA (Monochrome Display Adapter)

La primera de todas, sería la MDA. El primer adaptador de vídeo disponible en el mercado. Se trataba de un adaptador para pantallas monocromas, que durante varios años fue el estándar de este tipo de tarjetas. No se trataba de pantallas blanco y negro, sino de pantallas monocromas de fósforo verde, ambar o blanco.

Fue desarrollada por IBM para su famoso PC. Y en aquellos tiempos, la tarjeta funcionaba exclusivamente en modo texto, no soportaba gráficos.

Tarjeta gráfica MDA

CGA (Color Graphics Adapter)

Esta tarjeta es contemporánea a la MDA. Aunque tenía menos resolución que aquella contaba con la ventaja de que soportaba gráficos. Además tenía un conector que nos permitía conectarla directamente a un televisor, con lo que no necesitabas comprar un monitor.

Tarjeta Grafica - CGA

Hercules Graphics Card

Al año siguiente de la aparición de las tarjetas MDA y CGA,  la empresa Hercules lanzó la Hercules Graphics Card, la cual consiguió un tremendo éxito en aquellos tiempos.

Esta tarjeta era compatible con el PC y rápidamente fue desplazando a la tarjeta MDA de IBM.

Tarjeta gráfica HGC

EGA (Enhanced Graphics Adapter)

El éxito de la tarjeta Hercules Graphics Card había hecho perder a IBM el liderazgo con su tarjeta MDA. La respuesta de IBM fue el lanzamiento en 1985 de la tarjeta EGA (Enhanced Graphics Adapter).

Esta tarjeta era compatible hacia atrás, es decir, compatible con la MDA y la CGA. Además, disponía de una característica diferenciadora, incorporaba su propia ROM-BIOS con el firmware de la tarjeta gráfica. De esta forma, no era necesario que la placa base soportará la tarjeta de video, es decir, que tuviera el firmware de la misma en la BIOS del Sistema. En la ROM-BIOS de la tarjeta teníamos todas las características de la misma, disponibles para el sistema.

Tarjeta gráfica EGA

VGA (Video Graphics Array)

En 1987 hizo su aparición la tarjeta VGA que incorporaba el famoso conector del mismo nombre. Esta tarjeta mejoraba todo frente a las anteriores, presentaba mejor el texto, tenía más colores y mayor resolución. Por todo ello, enseguida se convirtió en el standard del mercado.

Tenía dos modos de resolución, el primero de 640×480 pixeles y el segundo de 320×200. Claro que el primero al tener más resolución tenía menos colores, podía llegar hasta 16, mientras que en el segundo modo podía utilizarse 256 colores.

Estas características hacia que se necesitará una RAM gráfica de 256 KB, una cantidad considerable para la época. En algunos casos se ampliaba a 512 KB.

Además, también incorporaba su propia BIOS y era compatible hacia atrás.

Tarjeta gráfica VGA

Todas las tarjetas gráficas vistas hasta aquí, ya no se fabrican. De todas maneras, espero que este breve recorrido por las distintas tecnologías ya obsoletas, te haya ayudado a hacerte una idea de como fueron evolucionando, hasta llegar a la tarjeta gráfica Super-VGA.

Super-VGA

A principios de los 90s apareció esta tecnología, las tarjetas Super-VGA o abreviadas como SVGA. También denominadas a veces Ultra-VGA o UVGA.

Puede sonar extraño que la tecnología actual sea de los 90, considerando el increíble desarrollo que han tenido y están teniendo las tarjetas gráficas. En realidad, las tarjetas gráficas han evolucionado muchísimo pero no ha existido una intención de los fabricantes de ir diferenciando nuevas tecnologías, lo que han ido haciendo es ir mejorando esta sin ponerle nuevos nombres. Y hoy en día podemos encontrar tarjetas gráficas con capacidades de memorias de Gigabytes y GPUs increíbles, con tal capacidad de computación que también son empleadas para minería de criptomonedas.

Lógicamente han aumentado tanto la resolución como la paleta de colores que pueden manejar. Además incorporan conectores nuevos como HDMI o incluso USB, algunas de ellas conservando también el clásico conector VGA.

Tarjeta gráfica SVGA

Estas son las tarjetas que normalmente nos encontraremos en los ordenadores actuales.

Funcionamiento de la tarjeta gráfica

Como he comentado antes, la tarjeta gráfica libera a la CPU de gran parte del trabajo de presentación de la imagen en el monitor. Pero veamos como funciona esto con un poco más de detalle.

Las distintas aplicaciones con las que estamos trabajando, envían a la CPU los comandos para presentar la información en pantalla. Indicándole a esta los datos necesarios para componer la imagen y algunas características de la misma, necesarias para dibujarla en el monitor. Entonces, la CPU realmente sólo se ocupa de hacer llegar toda esta información a la tarjeta gráfica, delegando gran parte del trabajo de presentación de la imagen en pantalla.

A través del bus de expansión AGP, la tarjeta gráfica recibe toda la información necesaria, los datos de la imagen que pasan a guardarse en la RAM de la tarjeta y las instrucciones para componer la imagen que ejecutará la GPU de la tarjeta. Esta última también se encarga de enviar los datos de la RAM gráfica al monitor. Y de esta forma, la CPU del sistema se ve liberada de gran parte de la carga de proceso gráfico.

Si disponemos de una tarjeta gráfica limitada y empleamos el ordenador en programas con un alto requerimiento de tratamiento de gráficos, como pueden ser los juegos, las aplicaciones de diseño gráfico, etc. Es posible que no nos llegue con la RAM de la tarjeta gráfica, en cuyo caso haremos uso también de la RAM del sistema, con la consiguiente perdida de calidad. Es más que posible que nuestra imagen pixele o tengamos cierto retardo, al tener que trabajar con la RAM del sistema.

Principales fabricantes de tarjetas gráficos

Conviene conocer también quienes son los principales jugadores en el mercado de las tarjetas gráficas. Sencillamente voy a nombrarlos y os dejo también el enlace a su web, para aquellos que tengan interés en echar un vistazo.

Destacaría dos fundamentalmente;

Donde puedes curiosear la gama Radeon

Recorriendo las webs de estos dos fabricantes puedes hacerte una idea muy buena de las características de las tarjetas gráficas modernas. Apreciaras además, como estas empresas extienden su negocio a la inteligencia artificial, ya que las GPUs  que fabrican son los procesadores idóneos para esta actividad. Algunas de ellas, como la NVIDIA TITAN RTX, incorpora un GPU con 576 núcleos y una RAM de 24GB.

De todos modos, por echar un ojo a un fabricante modesto, os dejo otro: Matrox: https://www.matrox.com/en/

Normalmente, la información que manejaremos de las tarjetas gráficas será: su fabricante, GPU y RAM gráfica. Por ejemplo:

MSI V809-2000R NVIDIA GeForce GT 710 2GB

El fabricante es NVIDIA, el procesador gráfico o GPU es GeForce GT710 y tiene una RAM gráfica de 2GB.

Interfaces del bus de expansión

Rápidamente, sin entrar en detalle, nos queda ver donde conectamos la tarjeta gráfica en nuestra placa base.

Al principio de los tiempos la conectábamos en el bus ISA. Pero cuando Intel desarrollo el bus PCI, comenzaron a conectarse a este bus que ofrecía mejor rendimiento que el anterior. Sin embargo, al bus PCI se conectaban también otro tipo de componentes y se producían cuellos de botella. El procesamiento gráfico demandaba comunicaciones de gran cantidad de datos a alta velocidad, necesitábamos un bus dedicado a este propósito.

La respuesta fue el bus AGP (Accelerated Graphics Port) que introdujo la mejora de dedicarse en exclusiva a la parte gráfica. Llego hasta su versión 3, cuando empezó a ganarle la partida un desarrollo mejorado del bus PCI: el PCI Express. Este último aporta elevadas tasas de transferencia que es exactamente lo que se precisa, y a la postre es la solución más empleada actualmente.

Bus AGP y bus PCI-Express

NOTA:

Este post es parte de la colección “Arquitectura de Sistemas” que reproduce los apuntes de la clase que imparto sobre el tema en ESIC. Puedes ver el índice de esta colección aquí.