Dekodowanie instrukcji jest etapem cyklu rozkazowego procesora (pobranie → dekodowanie → wykonanie). W praktyce realizuje je jednostka sterująca lub jej fragment (często nazywany dekoderem instrukcji). Zadaniem dekodera jest rozpoznanie, jaki rozkaz został pobrany z pamięci (na podstawie kodu operacji), a następnie przygotowanie sterowania dla kolejnych bloków CPU.
Dlatego poprawne wskazanie elementu "odpowiedzialnego za dekodowanie instrukcji" wymaga powiązania funkcji z blokiem sterowania/dekodowania, a nie z blokiem wykonawczym. ALU wykonuje operacje arytmetyczno-logiczne, ale nie rozpoznaje znaczenia kodu rozkazu. Rejestry (np. rejestr instrukcji) mogą przechowywać aktualną instrukcję, jednak samo przechowywanie nie jest dekodowaniem. Licznik rozkazów (PC) służy do wskazywania adresu następnej instrukcji, a nie do jej interpretacji.
Na schemacie z zadania blok opisany funkcją dekodowania instrukcji ma numer 3. Pozostałe numery odnoszą się do innych elementów procesora, które mogą uczestniczyć w cyklu rozkazowym, ale nie pełnią roli dekodera.
- Odpowiedź "2" jest błędna, jeśli oznacza element wykonawczy (np. ALU) lub transportowy, ponieważ nie interpretuje kodu rozkazu.
- Odpowiedź "1" jest błędna, jeśli odnosi się do rejestru/PC/pamięci – to elementy przechowujące lub adresujące dane/instrukcje, a nie dekodujące.
- Odpowiedź "4" jest błędna, jeśli dotyczy innego bloku (np. magistrali, pamięci lub rejestrów), bo nie generuje sekwencji sygnałów sterujących wynikających z opcodu.
Wskazówka do nauki: zapamiętaj, że dekodowanie = sterowanie. Jeżeli na schemacie widzisz blok związany z "CU/Control/Decoder", to zwykle jest to miejsce, gdzie zachodzi dekodowanie instrukcji.