One-Hot
Englisch: one-hot
Eine Bitfolge mit nur einem High-Bit (1) und allen übrigen Low-Bits (0).
One-Hot: Binäre Kodierung, bei der genau ein Bit immer 1 ist
One-Hot ist eine Methode zur Darstellung eines diskreten Zustands oder Werts mit einer Gruppe von Bits, wobei genau ein Bit auf Logikpegel 1 (High) gesetzt ist und alle anderen 0 (Low) sind. Bei n möglichen Zuständen benötigen Sie n Bits zu deren Darstellung. Eine 4-Bit-One-Hot-Kodierung zur Auswahl eines von vier Zuständen könnte beispielsweise 0001, 0010, 0100 oder 1000 lauten, je nachdem welcher Zustand aktiv ist.
One-Hot-Kodierung unterscheidet sich grundlegend vom binären Zählen. Standardbinär verwendet die minimale Anzahl von Bits (für vier Zustände reichen 2 Bits: 00, 01, 10, 11), erfordert aber Dekodierung des Ergebnisses. One-Hot nutzt mehr Leitungen oder Flipflops, eliminiert aber den Dekodierungsaufwand. Ein Dekoder oder logische Gatter sind erforderlich, um One-Hot aus Standardbinär zu erzeugen oder One-Hot zurück in ein anderes Format umzuwandeln.
Häufige Anwendungen in Steuerung und Auswahl
One-Hot glänzt bei Multiplexer-Steuerung, Zustandsmaschinen-Design und Prioritäts-Kodierung. Bei einem Multiplexer, der eine von acht Eingangsleitungen auswählt, bilden One-Hot-Steuersignale direkt auf die Auswahlgatter mit minimaler Logik-Verzögerung ab. Prioritäts-Encoder geben häufig One-Hot aus, um zu identifizieren welche Interrupt-Leitung zuerst aktiviert wurde. Feldprogrammierbare Gate Arrays (FPGAs) und asynchrone Zustandsmaschinen bevorzugen One-Hot, da die Hardware das Konzept direkt darstellt: zu jedem Moment ist nur eine Sache wahr.
Der Hauptnachteil ist der Ressourcenverbrauch. Eine One-Hot-Darstellung verschwendet Bits im Vergleich zu Binär; die Darstellung von 256 Zuständen erfordert 256 One-Hot-Bits, aber nur 8 Binär-Bits. In großen Designs führt das zu mehr Verbindungsleitungen, mehr Leistungsverbrauch und mehr Siliziumfläche. Erkennungsschaltungen müssen auch sicherstellen, dass beschädigte Zustände (keine Bits gesetzt oder mehrere Bits gesetzt) sicher gehandhabt werden.
Der Begriff stammt von der Idee, dass die Kodierung zu jedem Moment genau ein "aktives" (High-)Signal enthält. Im Hardware-Design vereinfacht One-Hot Timing und Dekodierung auf Kosten der Breite, was es zur bevorzugten Wahl macht, wenn Geschwindigkeit und Klarheit wichtiger sind als Code-Dichte.