Unterschied zwischen Binärzeiger und Graucodezeiger

Dec 06, 2019

Unterschied zwischen Binärzeiger und Graucodezeiger

(1) Aufgrund der Handshake-Synchronisation kann der Zeiger mehrere Bits gleichzeitig ändern, und der Binärzeiger kann bei jeder Bewegung über eine beliebige Länge springen, was die Implementierung einiger Funktionen des FIFO erleichtert (z Beispiel: Die Hardware steuert das FIFO direkt aus dem Cache. Ein Fehlerpaket wird im Datenstrom verworfen. und der Gray-Code-Zeiger kann sich im Allgemeinen nur nach oben oder unten bewegen.

(3) Im Vergleich zur direkten Synchronisation erfordert die Synchronisation durch Handshake mehrere Taktzyklen, so dass die Beurteilung von Binärzeigern bei vollständiger Leere "konservativer" ist als die Beurteilung von Graucodezeigern bei vollständiger Leere; Zum Entwerfen eines FIFO mit einer großen Kapazität und aus Speicher zusammengesetzt wird gesagt, dass der durch konservative Beurteilung verlorene Raum ignoriert werden kann; aber für ein kleines FIFO ist dieses "konservative" möglicherweise nicht akzeptabel. Zum Beispiel ein FIFO bestehend aus 8 Registern. Bei einem in Gray-Code codierten Zeiger sind im schlimmsten Fall, wenn der FIFO vom Schreiber als voll beurteilt wird, tatsächlich nur fünf Daten darin gespeichert (bei Verwendung eines zweistufigen Synchronisierers kann es drei Synchronisierungen von zwei Zyklen dauern und Leseoperationen treten innerhalb dieser drei Zyklen auf); Bei Zeigern mit binärer Codierung befinden sich möglicherweise nur drei Daten im FIFO oder weniger, wenn der FIFO als voll beurteilt wird (unter Verwendung eines zweistufigen Synchronisierers. Im besten Fall sind fünf Handshake-Zyklen erforderlich, und es treten Leseoperationen auf in allen fünf Zyklen).


Anfrage senden