por explorer » 2013-11-02 21:06 @921
Es cuestión de que agarres una calculadora y eches cuentas para ver las necesidades de transferencia de información que necesitan las memorias de las tarjetas de vídeo, para que te des cuenta de que es una tecnología muy distinta de las memorias de almacenamiento masivo.
Yo he tenido ordenadores en los cuales la memoria RAM del ordenador la usaba también el chip de vídeo (hoy se dice "compartir"). Eso era genial, porque la programación era muy sencilla: cuando querías que algo apareciera en pantalla, pues solo tenías que escribir en esa zona de memoria. Incluso podías desplazarla la memoria de pantalla por otras zonas de la memoria RAM, con lo cual era muy fácil hacer juegos de scroll vertical u horizontal. Incluso simular que tenías una pantalla virtual más grande que la pantalla física.
Pero eso facilidad tenía un coste: el chip de vídeo necesitaba parar todo el sistema para poder acceder a la memoria, extraer los bytes correspondientes a una línea de pantalla, y mandar la información al monitor o TV. Y ese proceso se repetía cada pocos milisegundos, con lo que el resto del sistema, se enlentecía.
Casos extremos. Una demo para Atari ST conseguía poner el modo gráfico 640x200 a 1600x600, haciendo que el chip de vídeo pintara más allá de los tradicionales bordes de pantalla. La máquina casi se paraba. Estaba dedicada plenamente a pintar en cada línea posible de un TV.
Otro ejemplo clásico es la consola VCS 2600: no tenía memoria de vídeo. Era (es) responsabilidad del programador definir cada línea de la pantalla de juego antes de entregársela al chip de vídeo. Y así para todas las líneas. La consecuencia es que el 27 % del tiempo de la CPU está dedicado solo a pintar la pantalla.
Hoy en día, con resoluciones de 2500x2000, en 24 bits por pixel, y a 85 Hz de refresco... pues haces cuentas y te das cuenta de que necesitas una memoria aparte, y super rápida, para que el chip de vídeo trabaje a gusto, y no moleste al resto del sistema.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES