¿Cómo maneja tanta información mi controlador de pantalla?

61

Acabo de hacer algunos cálculos rápidos:

En mi MacBook tengo una resolución de 2560x1440 multiplicada por 24 bits para los colores que obtenemos 11.05MB para una sola imagen o 663MB por segundo a 60 fps .

Supongo que hay cierta compresión, pero, por ejemplo, cuando muevo tres dedos sobre mi panel táctil, eso es bastante aleatorio, lo que sucede a continuación en la pantalla y casi todos los píxeles cambian. Igual que con casi todas las demás interacciones.

Explique si mis cálculos son incorrectos y cómo se transportan estos datos de mi tarjeta gráfica a mi pantalla. ¿Cuán amplios son los buses entre mi tarjeta gráfica y mi pantalla? Tal vez explique en pocas palabras cómo una pantalla almacena píxeles? ¿Registros de turno? ¿Caché?

    
pregunta Felix Crazzolara

3 respuestas

71

Sus cálculos son correctos en esencia. Para una señal de 1440p60Hz, tiene una velocidad de datos de 5.8Gbps una vez que también permite el tiempo de supresión (borde de píxel no visible en la salida de la imagen).

Para HDMI / DVI, se usa una codificación 10 / 8b, lo que significa que efectivamente, aunque diga 24 bits de datos de color por píxel, en realidad se envían 30 bits a medida que se codifican los datos y se agregan palabras de control de protocolo. No se realiza ninguna compresión, los datos sin procesar se envían, por lo que eso significa que necesita 7.25 Gbps de ancho de banda de datos.

Nuevamente mirando HDMI / DVI. Utiliza el estándar de señalización "TDMS" para la transferencia de datos. El estándar HDMI V1.2 exige un máximo de 4.9Gbps para un enlace único (3 líneas de datos en serie + 1 línea de reloj), o en el caso de DVI de enlace doble, un máximo de 9.8Gbps (6 líneas de datos de serie, creo). Por lo tanto, hay un ancho de banda más que suficiente para realizar 1440p60 a través de un DVI de doble enlace, pero no a través de un HDMI V1.2.

En el estándar HDMI V1.3 (la mayoría de los dispositivos se saltan a V1.4a que tiene el mismo ancho de banda que el 1.3), el ancho de banda se duplicó a alrededor de 10 Gbps, que admitirían 1440p60, y también tiene suficiente ancho de banda para UHD a 30 Hz ( 2160p30).

DisplayPort como otro ejemplo tiene 4 flujos de datos en serie, cada uno capaz (en V1.1) de 2.16Gbps por flujo (lo que representa la codificación), así que con un enlace V1.1 podría hacer 1440p60 Fácilmente con los 4 arroyos. También han lanzado un estándar más nuevo, V1.2 que duplica eso a 4.32Gbps / stream permitiendo UHD a 60Hz. Todavía hay una versión más nueva que han impulsado aún más a 6.4Gbps / stream .

Inicialmente, esas cifras suenan enormes, pero en realidad no tanto cuando se considera USB 3.0. Eso fue lanzado con una velocidad de datos de 5Gbps sobre un solo cable (en realidad dos, uno para TX, uno para RX, pero estoy divagando). PCIe, que es lo que su tarjeta gráfica usa internamente hoy en día, funciona a hasta 8Gbps a través de un solo par diferencial, por lo que no es tan sorprendente que las interfaces de datos externas se estén recuperando.

Pero la pregunta sigue siendo, ¿cómo se hace? Cuando piensa en VGA, se compone de cables únicos para datos R, G y B que se envían en un formato analógico. Como sabemos, el analógico es altamente susceptible al ruido, y el rendimiento de DAC / ADC también es limitado, por lo que limita enormemente lo que puede empujar a través de ellos (habiendo dicho que puede apenas hacer 1440p60Hz sobre VGA si eres afortunado).

Sin embargo, con los estándares modernos utilizamos estándares digitales que son mucho más inmunes al ruido (solo necesita distinguir alto o bajo en lugar de todos los valores intermedios), y también elimina la necesidad de conversión entre analógico y digital.

Además, el advenimiento de usar estándares diferenciales en un solo extremo ayuda significativamente porque ahora está comparando el valor entre dos cables (+ ve diferencia = 1, -ve diferencia = 0) en lugar de comparar un solo cable con algún umbral. Esto significa que la atenuación es un problema menor porque afecta a ambos cables por igual y se atenúa hasta la tensión del punto medio: el "ojo" (diferencia de tensión) se hace más pequeño, pero aún se puede saber si es de + ve o -ve incluso Si es solo 100mV o menos. Las señales de terminación única una vez que la señal se atenúa, pueden caer por debajo de su umbral y volverse indistinguibles incluso si aún tienen una amplitud de 1 V o más.

Al usar un enlace en serie a través de uno paralelo, también podemos ir a velocidades de datos más rápidas porque el sesgo deja de ser un problema. En un bus paralelo, digamos 32 bits de ancho, debe coincidir perfectamente con la longitud y las características de propagación de 32 cables para que las señales no se salgan de la fase entre ellas (sesgar). En un enlace de serie, solo tiene un solo cable, por lo que no puede ocurrir una desviación.

TL; DR Los datos se envían a la tasa de bits completa calculada (varios Gbps), sin compresión. Las técnicas modernas de señalización de enlaces digitales serializados sobre pares diferenciales hacen esto posible.

    
respondido por el Tom Carpenter
18

Las computadoras modernas son sorprendentemente rápidas. La gente estará feliz de cargar videos en alta definición a 30 fps sin darse cuenta de que eso implica miles de millones de operaciones aritméticas por segundo. Los jugadores tienden a ser un poco más conscientes de esto; un GTX 1060 le dará 4.4 TFLOPS ( billón operaciones de punto flotante por segundo).

  

Explique si mis cálculos son incorrectos y cómo se transportan estos datos de mi tarjeta gráfica a mi pantalla.

     

¿Cuán amplios son los buses entre mi tarjeta gráfica y mi pantalla?

Otra respuesta ha abordado la naturaleza de múltiples gigabits de HDMI, DisplayLink, etc.

  

¿Quizás explique en pocas palabras cómo almacena los píxeles una pantalla? ¿Registros de turno? ¿Caché?

La pantalla en sí misma almacena, en teoría, sin datos de imagen.

(Algunas pantallas, especialmente televisores, almacenan uno o dos cuadros para aplicar el procesamiento de imágenes. Esto aumenta la latencia y es impopular entre los jugadores).

El subsistema de gráficos de una computadora almacena píxeles en una DRAM normal. No suele redibujar todo desde el procesador a cada fotograma, pero entrega parte de la funcionalidad a subsistemas dedicados y un compositor . Un compositor permitirá, por ejemplo, cada ventana en el escritorio se almacena como un conjunto distinto de píxeles, que luego pueden ser movidos, desplazados o ampliados por el hardware dedicado. Esto se vuelve bastante obvio con el desplazamiento en dispositivos móviles: puede avanzar un poco hasta que se quede sin píxeles precalculados "fuera de la pantalla" y el software debe detenerse y procesarse un poco más en los búferes del compositor.

Los

juegos están rediseñados en cada cuadro, y hay mucha literatura sobre cómo se construye una escena. Esto se construye en un framebuffer en la tarjeta gráfica que luego se transmite mientras el siguiente marco se dibuja en un búfer diferente.

Por lo general, la decodificación de video también se otorga a hardware dedicado, especialmente H.264.

    
respondido por el pjc50
11

El enlace entre la tarjeta de visualización y el panel LCD se transmite a través de varios pares diferenciales de alta velocidad utilizando la señalización TMDS , por lo general llamados "carriles". Normalmente se usan cuatro carriles, por lo que se puede decir que el bus tiene un ancho de 4 bits. Para obtener más detalles, hay una respuesta del intercambio de pila .

Cada modelo de panel LCD generalmente se produce con varias encarnaciones de interfaz, por lo que se debe tener cuidado y mirar los sufijos cuando se intenta reemplazar un panel roto. El enlace digital más moderno (HDMI 1.4) tiene 10.2 Gbps, o solo 2.5 Gbps por línea. En sus cálculos (663 MBps), totaliza 1.2 Gbps por línea (asumiendo 4 líneas), lo que no es mucho (por ejemplo, SATA3 tiene 6Gbps).

ADICIÓN en paneles LCD. La pantalla LCD de matriz activa intenta almacenar la imagen del cuadro (datos de píxeles) en los condensadores asociados con las "Celdas nemáticas torcidas" (la que controla la polarización de la película). El problema es que el tamaño de los límites de almacenamiento analógico debe ser un compromiso entre el tiempo de almacenamiento y la velocidad del cambio de píxeles. Por lo tanto, no se puede agrandar, pierde el potencial almacenado rápidamente y, por lo tanto, requiere actualización periódica . Cada celda de píxel está conectada con datos y líneas de dirección a través de un transistor (elemento "activo"), vea esto Artículo de Tomshardware . El controlador LCD controla las líneas de datos y direcciones en forma de línea a línea manteniendo la imagen mostrada. La imagen en sí misma se almacena en un búfer de cuadros (RAM) dentro del controlador de gráficos.

    
respondido por el Ale..chenski

Lea otras preguntas en las etiquetas