Differenza tra puntatore binario e puntatore codice grigio
(1) A causa della sincronizzazione dell'handshake, il puntatore può cambiare più bit contemporaneamente e il puntatore binario può saltare su una lunghezza arbitraria ogni volta che si muove, il che porta comodità all'implementazione di alcune funzioni di FIFO (per esempio, l'hardware controlla direttamente FIFO dalla cache. Un pacchetto di errori viene scartato nel flusso di dati); e il puntatore del codice Gray può generalmente spostarsi solo verso l'alto o verso il basso.
(3) Rispetto alla sincronizzazione diretta, la sincronizzazione tramite handshake richiede più cicli di clock, quindi il giudizio a tutto vuoto dei puntatori binari è più "conservativo" rispetto al giudizio a pieno vuoto dei puntatori a codice Gray; per la progettazione di un FIFO con una grande capacità e composto da memoria, si dice che lo spazio perso a causa del giudizio conservativo possa essere ignorato; ma per un piccolo FIFO, questo "conservatore" potrebbe non essere accettabile. Ad esempio, un FIFO composto da 8 registri. Per un puntatore codificato nel codice Gray, nel peggiore dei casi, quando il FIFO viene giudicato pieno dallo scrittore, in realtà ci sono solo cinque dati memorizzati al suo interno (utilizzando un sincronizzatore a due livelli, potrebbero essere necessari tre Sincronizzazione di due cicli e le operazioni di lettura avvengono all'interno di questi tre cicli); Per i puntatori con codifica binaria, quando il FIFO è giudicato pieno, potrebbero esserci solo tre dati nel FIFO o meno (usando un sincronizzatore a due stadi, Nel migliore dei casi, sono richiesti cinque cicli di handshake e si verificano operazioni di lettura in tutti e cinque i cicli).
