Ein Prozessor muss eine Anweisung dekodieren, da die Anweisung selbst in seiner rohen Form nicht direkt ausführbar ist. Die Anweisung wird zunächst als Abfolge von Bits (Maschinencode) dargestellt, was eine symbolische Darstellung der zu ausgeführten Operation und der Daten ist, die sie benötigen. Diese Darstellung ist nicht etwas, worauf die Schaltung des Prozessors direkt verstehen und handeln kann.
Die Dekodierung übersetzt diese Abfolge von Bits in einen Satz von Signalen, die verschiedene Teile des Prozessors steuern. Dieser Prozess beinhaltet:
* Identifizieren des Opcode: Der erste Teil des Befehls (OPCODE) gibt den zu ausgeführten Vorgang an (z. B. Addition, Subtraktion, Speicherzugriff). Der Decoder identifiziert diesen Opcode und bestimmt den Betriebstyp.
* Operanden identifizieren: Der Rest der Anweisung gibt die Operanden an - die Daten, an denen der Betrieb arbeitet. Dies kann Registernummern, Speicheradressen oder unmittelbare Werte umfassen. Der Decoder extrahiert diese Informationen und bestimmt, wo sich die Daten befinden.
* Kontrollsignale generieren: Basierend auf der dekodierten Anweisung generiert der Decoder verschiedene Kontrollsignale. Diese Signale leiten andere Teile des Prozessors, wie die arithmetische Logikeinheit (ALU), Speichereinheiten und Register, zur Ausführung des Betriebs. Zum Beispiel kann es bestimmte Gates in der ALU aktivieren, um die Ergänzung durchzuführen, oder den Speichercontroller zu signalisieren, dass Daten von einer bestimmten Adresse abgerufen werden.
Im Wesentlichen fungiert Dekodierung als Übersetzer zwischen der menschlich-lesbaren (oder montierbler-lesbaren) Form einer Anweisung und der internen Hardware des Prozessors. Ohne Dekodierung wäre der Prozessor nicht in der Lage zu verstehen, was er tun muss und wie es zu tun ist.