Diferencia entre puntero binario y puntero de código gris
(1) Debido a la sincronización del protocolo de enlace, el puntero puede tener múltiples bits de cambio al mismo tiempo, y el puntero binario puede saltar sobre una longitud arbitraria cada vez que se mueve, lo que brinda conveniencia para la implementación de algunas funciones de la FIFO (para ejemplo, el hardware controla directamente el FIFO desde el caché Un paquete de error se descarta en el flujo de datos); y el puntero de código gris generalmente solo puede moverse hacia arriba o hacia abajo.
(3) En comparación con la sincronización directa, la sincronización por protocolo de enlace requiere múltiples ciclos de reloj, por lo que el juicio de los punteros binarios está completamente vacío y es más "conservador" que el juicio de los punteros de código Gray completamente vacío; para diseñar un FIFO con una gran capacidad y compuesto de memoria, se dice que el espacio perdido debido al juicio conservador puede ignorarse; pero para un FIFO pequeño, este "conservador" puede no ser aceptable. Por ejemplo, un FIFO que consta de 8 registros. Para un puntero codificado en código Gray, en el peor de los casos, cuando el escritor considera que el FIFO está lleno, en realidad solo hay cinco datos almacenados en él (usando un sincronizador de dos niveles, puede tomar tres Sincronización de dos ciclos , y las operaciones de lectura ocurren dentro de estos tres ciclos); Para punteros con codificación binaria, cuando se considera que el FIFO está lleno, puede haber solo tres datos en el FIFO o menos (utilizando un sincronizador de dos etapas, en el mejor de los casos, se requieren cinco ciclos de protocolo de enlace y se producen operaciones de lectura en los cinco ciclos).
