El protocolo displayport se ejecuta a una frecuencia fija de 1.62GHz, 2.7GHz o 5.4GHz. El flujo de píxeles (strm_clk) que lleva se ejecuta a una frecuencia arbitraria y es probable que sea asíncrono al reloj de enlace (link_clk). Se supone que el receptor recupera strm_clk de dos números M, N, como su relación, es decir, strm_clk / link_clk = M / N, donde N se fija a 32,768 y M depende de cuántos ciclos de strm_clk se hayan registrado durante los ciclos de N link_clk. En modo asíncrono, esperaríamos que M varíe ligeramente en el tiempo. Hasta ahora todo bien.
Ahora, los problemas:
-
M, N se envían una vez por trama, mientras que se restablecen cada N = 32,768 ciclos de link_clk, que se encuentra en aproximadamente 2-3 líneas. ¿Cómo pueden los cambios delicados en M ser detectados por el receptor que no ve M con tanta frecuencia (solo una vez en millones link_clk - durante el cegamiento vertical)?
-
los 8 bits más bajos de M se envían a cada línea, lo que puede explicar lo anterior, pero como M se restablece cada N = 32,768 ciclos de link_clk, también lo son sus 8 bits más bajos, lo que socavará la capacidad de usar estos bits como referencia entre dos relojes (debido a lo que aparece como restablecimientos repentinos en estos bits). ¿Cómo funciona eso? ¿Hay dos contadores separados?
-
otro problema (menor): en cada reloj de flujo, se envían 24 bits (en el modo RGB 444), el puerto de pantalla envía 4 u 8 bytes (dependiendo del número de carriles / su velocidad). ¿Eso significa que en cada ciclo de lstrm_clk, M debería incrementarse de manera fraccionada (es decir, en 3, en 3, luego en 2)?
Encuentro el estándar difícil de entender - básicamente, página 60 aquí:
Conclusión: ¿alguien puede explicar cómo se supone que este esquema N, M debe funcionar dados los problemas anteriores?
¡Cualquier pensamiento sería muy apreciado!