Controlador de pantalla de video - Video display controller

Diagrama de bloques de un controlador de pantalla gráfica NEC µPD7220

Un controlador de pantalla de video o VDC (también llamado habitualmente motor de pantalla , interfaz de pantalla ) es un circuito integrado que es el componente principal en un generador de señal de video , un dispositivo responsable de la producción de una señal de video de TV en un sistema informático o de juego. Algunos VDC también generan una señal de audio , pero esa no es su función principal.

Los VDC se utilizaron en las computadoras domésticas de la década de 1980 y también en algunos de los primeros sistemas de imágenes de video .

El VDC es el componente principal de la lógica del generador de señales de video, responsable de generar la sincronización de las señales de video, como las señales de sincronización horizontal y vertical y la señal de intervalo de supresión . A veces, se necesitaban otros chips de soporte para construir un sistema completo, como RAM para contener datos de píxeles , ROM para contener fuentes de caracteres o alguna lógica discreta como registros de desplazamiento .

La mayoría de las veces, el chip VDC está completamente integrado en la lógica del sistema informático principal (su RAM de video aparece en el mapa de memoria de la CPU principal), pero a veces funciona como un coprocesador que puede manipular el contenido de la RAM de video de forma independiente.

Controlador de pantalla de video vs.Unidad de procesamiento de gráficos

La diferencia entre un controlador de pantalla, un acelerador de gráficos y un IC de compresión / descompresión de video es enorme, pero, dado que toda esta lógica generalmente se encuentra en el chip de una unidad de procesamiento de gráficos y generalmente no está disponible por separado para el cliente final , a menudo hay mucha confusión acerca de estos bloques funcionales tan diferentes.

Las GPU con aceleración de hardware comenzaron a aparecer durante la década de 1990. Los VDC a menudo tenían hardware especial para la creación de " sprites ", una función que en los chips VDP más modernos se realiza con el " Bit Blitter " usando la función " Bit blit ".

Un ejemplo de un procesador de visualización de vídeo típico es el "procesador de visualización de vídeo de fondo y plano de desplazamiento VDP2 de 32 bits " de Sega Saturn . Otro ejemplo es el chip Lisa (AGA) que se utilizó para los gráficos mejorados de las computadoras Amiga de última generación .

Dicho esto, no está del todo claro cuándo un "chip de vídeo" es un "controlador de visualización de vídeo" y cuándo es un "procesador de visualización de vídeo". Por ejemplo, el TMS9918 a veces se denomina "controlador de visualización de vídeo" y, a veces, "procesador de visualización de vídeo". En general, sin embargo, un "procesador de visualización de vídeo" tiene algo de poder para "procesar" el contenido de la RAM de vídeo (llenando un área de RAM, por ejemplo), mientras que un "controlador de visualización de vídeo" solo controla la sincronización de las señales de sincronización de vídeo y el acceso a la RAM de video.

La unidad de procesamiento de gráficos (GPU) va un paso más allá que el VDP y normalmente también admite la funcionalidad 3D. Este es el tipo de chip que se utiliza en las computadoras personales modernas.

Tipos

Los controladores de visualización de video se pueden dividir en varios tipos diferentes, enumerados aquí del más simple al más complejo;

  • Los cambiadores de video , o "sistemas basados ​​en registros de desplazamiento de video" (no existe un nombre generalmente acordado para este tipo de dispositivos), son el tipo más simple de controladores de video. Son directa o indirectamente responsables de las señales de temporización de vídeo, pero normalmente no acceden directamente a la RAM de vídeo. Obtienen los datos de video de la CPU principal, un byte a la vez, y los convierten en un flujo de bits en serie, de ahí el nombre técnico "video shifter". Este flujo de datos en serie se usa luego junto con las señales de sincronización para dar salida a una señal de video. La CPU principal necesita hacer la mayor parte del trabajo. Normalmente, estos chips solo admiten un modo de gráficos de trama de muy baja resolución .
  • Un CRTC , o controlador de tubo de rayos catódicos , genera los tiempos de video y lee los datos de video de la RAM adjunta al CRTC para enviarlos a través de una ROM generadora de caracteres externa (para modos de texto ) o directamente al registro de desplazamiento de salida de video (para alta resolución modos gráficos). Debido a que las capacidades reales del generador de video dependen en gran medida de la lógica externa, el generador de video basado en un chip CRTC puede tener una amplia gama de capacidades, desde sistemas simples solo en modo texto hasta sistemas de alta resolución que admiten una amplia gama de colores. Los sprites, sin embargo, normalmente no son compatibles con estos sistemas.
  • Los controladores de interfaz de video son mucho más complejos que los controladores CRT, y el circuito externo que se necesita con un CRTC está integrado en el chip del controlador de video. Los sprites a menudo son compatibles, al igual que los generadores de caracteres (basados ​​en RAM) y la RAM de video dedicada a los atributos de color y los registros de paleta ( tablas de búsqueda de color ) para los modos de texto o de alta resolución.
  • Los coprocesadores de video tienen su propia CPU interna dedicada a leer (y escribir) su propia RAM de video (que puede ser compartida con la CPU) y convertir el contenido de esta RAM de video en una señal de video. La CPU principal puede dar comandos al coprocesador, por ejemplo, para cambiar los modos de video o para manipular el contenido de la RAM de video. El coprocesador de video también controla el generador de caracteres (la mayoría de las veces basado en RAM), el atributo de color RAM, los registros de paleta y la lógica del sprite (siempre que existan, por supuesto).

Lista de VDC de ejemplo

Ejemplos de controladores de pantalla de video son:

Cambiadores de video

  • El RCA CDP1861 era un chip muy simple, construido en tecnología CMOS (que era inusual para mediados de la década de 1970) para complementar el microprocesador RCA 1802 , se usó principalmente en el COSMAC VIP . Solo podía admitir un modo gráfico monocromático de muy baja resolución.
  • El Adaptador de Interfaz de Televisión (TIA) es el chip de video personalizado que es el corazón de la consola de juegos Atari 2600 , un chip muy primitivo que se basó en el microprocesador 6502 para hacer la mayor parte del trabajo, también se usó para generar el audio.

Controladores CRT

  • El controlador Intel 8275 CRT se utilizó en Convergent Technologies AWS / Burroughs B20 , junto con algunos sistemas de bus S-100 .
  • El Motorola 6845 (MC6845) es un generador de direcciones de video introducido por primera vez por Motorola y utilizado para Amstrad CPC y BBC Micro . También se usó para casi todos los primeros adaptadores de video para PC, como los adaptadores MDA , CGA y EGA . El MDA y el CGA usan un chip Motorola real, mientras que el EGA tiene un chipset IBM personalizado de cinco chips LSI; uno de esos chips incluye la reimplementación de IBM del CRTC, que funciona como un MC6845 pero difiere en algunas direcciones de registro y funciones, por lo que no es 100% compatible. En todos los adaptadores posteriores compatibles con VGA , la función del 6845 aún se reproduce dentro del chip de video, por lo que, en cierto sentido, todos los PC compatibles con IBM PC actuales aún incorporan la lógica del 6845 CRTC.

Controladores de interfaz de video

Coprocesadores de video

  • El ANTIC ( A lpha- N Umeric T a televisión I nterface C ircuit ) era un chip de sistema de vídeo temprana utilizado en la familia de 8 bits Atari de microordenadores . Podría leer una " Lista de visualización " con su propia CPU incorporada y utilizar estos datos para generar una señal de vídeo compleja.
  • El TMS9918 se conoce como Procesador de visualización de video (VDP) y fue diseñado por primera vez para la TI-99/4 de Texas Instruments , pero luego también se usó en sistemas como MSX (MSX-1), ColecoVision , Memotech MTX series y para el Sega SG-1000 y SC-3000 . El Master System usa un VDP mejorado basado en el TMS9918, y el Sega 315-5313 (Yamaha YM7101) VDP usado en Sega Genesis y algunas máquinas recreativas es un avance adicional del Master System VDP con los modos originales (inferiores) TMS9918 eliminados .
  • El Yamaha V9938 es una versión mejorada del TMS9918 y se utilizó principalmente en el MSX2 .
  • El Yamaha V9958 es el procesador de visualización de vídeo (VDP) que se utiliza principalmente en los ordenadores MSX2 + y MSX turboR .
  • El VLSI VS21S010D-L es un SRAM SPI / paralelo de 128kB con un controlador de pantalla de video integrado con píxeles de profundidad de bits variable y un blitter de movimiento de bloque.
  • La serie Thomson EF936x de procesador de pantalla gráfica (GDP), que ofrece una velocidad de dibujo de 1 millón de  píxeles  por segundo y resoluciones de hasta 1024 × 512.

Alternativas a un chip VDC

Tenga en cuenta que muchas de las primeras computadoras domésticas no usaban un chip VDP, pero construían todo el controlador de pantalla de video a partir de muchos chips lógicos discretos (ejemplos son Apple II , PET y TRS-80 ). Debido a que estos métodos son muy flexibles, los generadores de pantallas de video pueden ser muy capaces (o extremadamente primitivos, dependiendo de la calidad del diseño), pero también necesitan muchos componentes.

Muchos de los primeros sistemas usaban alguna forma de una matriz lógica programable temprana para crear un sistema de video; los ejemplos incluyen los sistemas ZX Spectrum y ZX81 y Elektronika BK-0010 , pero hubo muchos otros. Las primeras implementaciones fueron a menudo muy primitivas, pero las implementaciones posteriores a veces dieron como resultado sistemas de video bastante avanzados, como el del SAM Coupé .

Por lo tanto, estos sistemas podrían construir un sistema muy capaz con relativamente pocos componentes, pero el bajo recuento de transistores de la lógica programable temprana significaba que las capacidades de los primeros sistemas basados ​​en PLA eran a menudo menos impresionantes que las que usaban los controladores de interfaz de video o los coprocesadores de video que estaban disponibles. al mismo tiempo. Las soluciones PLA posteriores, como las que utilizan CPLD o FPGA , podrían dar como resultado sistemas de video mucho más avanzados, superando a los construidos con componentes estándar.

Una solución híbrida de uso frecuente era utilizar un controlador de interfaz de vídeo (a menudo el Motorola 6845 ) como base y ampliar sus capacidades con lógica programable o un ASIC . Un ejemplo de una solución híbrida de este tipo es la tarjeta VGA original , que usaba un 6845 en combinación con un ASIC. Es por eso que todos los sistemas de video actuales basados ​​en VGA todavía usan los registros de hardware que proporcionó el 6845.

Soluciones modernas

Diagrama de bloques del chip ATi R300 . El controlador de pantalla está etiquetado como "interfaz de pantalla".

Con los avances realizados en la fabricación de dispositivos semiconductores , cada vez se implementan más funciones como circuitos integrados , a menudo con licencia como núcleo de propiedad intelectual de semiconductores (núcleo SIP). Los bloques SIP del controlador de pantalla se pueden encontrar en la matriz de GPU , APU y SoC .

Admiten una variedad de interfaces : VGA , DVI , HDMI , DisplayPort , VHDCI , DMS-59 y más. El PHY incluye LVDS , TMDS y Flat Panel Display Link , OpenLDI y CML .

Por ejemplo, una señal VGA, que es creada por el controlador de pantalla, se transporta a través de un cable VGA a la pantalla. Ambos extremos del cable terminan en un conector VGA . Las computadoras portátiles y otras computadoras móviles utilizan diferentes interfaces entre el controlador de pantalla y la pantalla. Un controlador de pantalla generalmente admite varios estándares de pantalla de computadora .

El controlador KMS es un ejemplo de un controlador de dispositivo para controladores de pantalla y AMD Eyefinity es una marca especial de controlador de pantalla compatible con varios monitores .

RandR (redimensionar y rotar) es un método para configurar la resolución de pantalla y la frecuencia de actualización en cada salida individual por separado y al mismo tiempo configurar los ajustes del sistema de ventanas en consecuencia.

ARM Holdings ofrece un ejemplo de esta dicotomía : ofrecen un núcleo SIP para la aceleración de renderizado 3D y para el controlador de pantalla de forma independiente. El primero tiene nombres comerciales como Mali-200 o Mali-T880, mientras que el segundo está disponible como Mali-DP500, Mali-DP550 y Mali-DP650.

Historia

En 1982, NEC lanzó el NEC μPD7220 , uno de los controladores de visualización de video más utilizados en las computadoras personales de la década de 1980 . Se utilizó en NEC PC-9801 , APC III , compatibles con IBM PC , DEC Rainbow , Tulip System-1 y Epson QX-10 . Intel obtuvo la licencia del diseño y lo llamó controlador de pantalla gráfica 82720.

Anteriormente, las tarjetas gráficas también se llamaban adaptadores gráficos, y los chips utilizados en estas tarjetas ISA / EISA consistían únicamente en un controlador de pantalla, ya que esta era la única funcionalidad necesaria para conectar una computadora a una pantalla. Las tarjetas posteriores incluyeron circuitos integrados para realizar cálculos relacionados con el renderizado 2D en paralelo con la CPU; estas tarjetas se denominaron tarjetas aceleradoras de gráficos. De manera similar, finalmente siguieron los circuitos integrados para renderizado 3D. Dichas tarjetas estaban disponibles con interfaces VLB , PCI y AGP ; Las tarjetas modernas suelen utilizar el bus PCI Express , ya que requieren un ancho de banda mucho mayor que el que puede ofrecer el bus ISA.

Ver también

Referencias

enlaces externos