La memoria RAM de vídeo de doble puerto es un tipo de RAM de doble puerto derivada de la RAM dinámica (DRAM), y se utilizaba históricamente para almacenar el búfer de fotogramas en la tarjeta gráfica , y en aquel entonces a menudo se la denominaba VRAM .
A diferencia de la DRAM convencional, la VRAM cuenta con dos puertos: uno para la CPU y otro para el controlador de pantalla de vídeo (VDC). Esta arquitectura permite el acceso simultáneo: mientras la CPU escribe datos, el VDC puede leerlos de forma independiente. Esto elimina los tiempos de espera , lo que garantiza un rendimiento más fluido y una representación de pantalla eficiente.
La VRAM se utilizó ampliamente entre mediados de los años 80 y mediados de los 90. Con la aparición de nuevas tecnologías de memoria de alto rendimiento, la VRAM de doble puerto se fue eliminando gradualmente. Hoy en día, el término "VRAM" también puede referirse a tipos modernos de memoria de vídeo, lo que puede generar confusión con esta variante original de doble puerto.

Historia
Las primeras computadoras usaban RAM dinámica [ a ] para almacenar datos de video que se mostraban en un televisor convencional o en un televisor con una simple conversión que aceptaba entrada de video compuesto . Para funcionar con una pantalla de este tipo, era fundamental que el hardware de video emitiera una señal con una sincronización muy precisa. A las velocidades de la memoria de la época, la lectura de datos para alimentar el hardware de video consumía gran parte del rendimiento de los dispositivos de memoria. Esto entraba en conflicto con la necesidad de que la unidad central de procesamiento (CPU) escribiera datos en la memoria para que el sistema de video los leyera, ya que ambos no podían usar la misma memoria simultáneamente.
Para evitar problemas de sincronización, se emplearon dos soluciones generales. En los sistemas de gama alta, los sistemas de vídeo contaban con memoria dedicada y utilizaban un sistema independiente para que la CPU almacenara los datos. Esto eliminaba cualquier posible conflicto por la memoria, pero a costa de requerir memoria independiente en una época en la que la memoria era muy cara. Además, casi siempre se comunicaba a través de un bus de sistema lento que limitaba la velocidad de los cambios en la pantalla, dificultando así los gráficos interactivos. La otra solución, utilizada por la mayoría de los ordenadores domésticos , consistía en usar un único banco de memoria compartida y permitir que el hardware de vídeo controlara el acceso a la memoria, pausando la CPU cuando fuera necesario. Esto podía ralentizar el rendimiento informático, ya que la CPU entraba repetidamente en estos estados de espera , pero tenía la ventaja de ser menos costoso y permitir que la CPU actualizara la pantalla con mayor rapidez, ofreciendo así una mayor interactividad.
A principios de la década de 1980, la introducción de monitores de resolución mucho mayor que exigían búferes de fotogramas más grandes, y las nuevas interfaces gráficas de usuario (GUI) que requerían alta resolución y alto rendimiento general, hicieron que el rendimiento del sistema de vídeo fuera un problema cada vez más difícil [ 1 ] . Surgieron sistemas complejos como el Amiga para controlar cuidadosamente el acceso a la memoria y reducir la contención, pero si bien estos redujeron el problema, no lo eliminaron.
La solución consistió en utilizar memoria a la que pudieran acceder simultáneamente la CPU y el hardware de vídeo. Fue inventada por F. Dill, D. Ling y R. Matick en IBM Research en 1980, y se patentó en 1985 (Patente de EE. UU. 4,541,075). [ 2 ] El primer uso comercial de la VRAM se dio en un adaptador gráfico de alta resolución presentado en 1986 por IBM para su sistema IBM RT PC , que estableció un nuevo estándar para las pantallas gráficas. Antes del desarrollo de la VRAM, la memoria de doble puerto era bastante cara, lo que limitaba los gráficos de mapa de bits de mayor resolución a las estaciones de trabajo de gama alta. La VRAM mejoró el rendimiento general del framebuffer, permitiendo gráficos en color de alta velocidad, alta resolución y bajo coste. Los sistemas operativos modernos basados en GUI se beneficiaron de esto y, por lo tanto, proporcionaron un ingrediente clave para la proliferación de las GUI en todo el mundo en aquel momento.
Descripción
La memoria RAM dinámica (DRAM) está organizada internamente en una matriz de filas y columnas de condensadores , donde cada intersección de fila/columna almacena un bit en una celda . En su uso habitual, una CPU que accede a una DRAM solicita una pequeña cantidad de datos a la vez, posiblemente un solo byte . Para leer un byte para la CPU, la DRAM decodifica la dirección proporcionada en una serie de ocho celdas que contienen los ocho bits de ese byte en particular, lee la fila completa que contiene esas celdas y almacena los datos solicitados para que puedan leerse en el bus de datos . En aquel entonces, las filas solían tener 1024 celdas de ancho.
Los dispositivos DRAM son destructivos , lo que significa que la lectura de una fila borra los datos que contiene. Para que los datos sean permanentes, la DRAM debe volver a escribir los mismos datos en esa fila después de cada lectura. Por eso, se lee una fila completa de 1024 celdas (por ejemplo) aunque el procesador solo solicite ocho; mientras el procesador lee esos datos a través del bus de datos , la DRAM copia la fila completa desde los registros de lectura a esa fila, actualizándola. En resumen, la DRAM lee repetidamente filas completas de datos, selecciona un byte y descarta el resto, para luego volver a escribirlo todo.
La VRAM funciona sin descartar los bits sobrantes de la fila. En su lugar, los datos leídos en el almacenamiento de la fila también se envían a un segundo conjunto de biestables que está conectado a un desplazador de bits asociado . Desde ese punto, los datos se pueden leer bit a bit activando el desplazador. Esto requiere solo dos pines, uno para el bit de salida y otro para el disparador de entrada (o estroboscopio ). La VRAM generalmente no tiene dos buses de direcciones , lo que significa que la CPU y los gráficos aún tienen que intercalar sus accesos al chip, pero como se lee una fila completa de datos al controlador gráfico, y esa fila puede representar múltiples líneas de exploración en la pantalla, la cantidad de veces que tiene que interrumpir a la CPU se puede reducir considerablemente. [ 3 ]
Esta operación se describe en el artículo "Memoria de visualización raster direccionable en todos los puntos" de R. Matick, D. Ling, S. Gupta y F. Dill, IBM Journal of R&D, Vol. 28, n.° 4, julio de 1984, págs. 379-393. Para usar el puerto de vídeo, el controlador primero utiliza el puerto DRAM para seleccionar la fila de la matriz de memoria que se va a mostrar. A continuación, la VRAM copia toda esa fila en un búfer de filas interno , que es un registro de desplazamiento . El controlador puede entonces seguir utilizando el puerto DRAM para dibujar objetos en la pantalla. Mientras tanto, el controlador envía una señal de reloj, denominada reloj de desplazamiento (SCLK), al puerto de vídeo de la VRAM. Cada pulso de SCLK hace que la VRAM entregue los siguientes datos en un orden de dirección estricto, desde el registro de desplazamiento al puerto de vídeo. Para simplificar, el adaptador gráfico suele diseñarse de forma que el contenido de una fila, y por lo tanto el contenido del registro de desplazamiento, corresponda a una línea horizontal completa en la pantalla.
Transición a SDRAM
Durante la década de 1990, muchos subsistemas gráficos utilizaban VRAM, y la cantidad de megabits se promocionaba como un argumento de venta. A finales de la década de 1990, las tecnologías SDRAM se volvieron gradualmente asequibles, densas y lo suficientemente rápidas como para reemplazar a la VRAM, a pesar de que solo tiene un puerto y requiere mayor sobrecarga. No obstante, muchos de los conceptos de VRAM, como el almacenamiento en búfer interno en el chip y la organización, se han utilizado y mejorado en los adaptadores gráficos modernos. [ 4 ]
Véase también
Notas
- ↑ Y en algunos sistemas antiguos, RAM estática o registros de desplazamiento .
Referencias
- ↑ "Cómo se inventó la interfaz gráfica de usuario" .
- ↑ "US4541075 - Memoria de acceso aleatorio con un segundo puerto de entrada/salida" , patentscope.wipo.int , consultado el 15 de mayo de 2026
- ↑ Hoja de datos de la VRAM SM55161A de 262144×16 bits (PDF) , Austin Semiconductor, archivada desde el original (PDF) el 07/07/2011 , consultada el 02/03/2009.
- ↑ "¿Qué es la memoria DDR SDRAM?" .
- Memoria de acceso aleatorio
- Introducciones relacionadas con la informática en 1980
- Inventos estadounidenses
- Inventos del siglo XX