2. Cykl wykonania rozkazu przez procesor.
Czas potrzebny na odczytanie kodu operacyjnego rozkazu z pamięci, na pobranie
argumentów, na wykonanie rozkazu i przesłanie wyniku operacji nazywa się, cyklem rozkazowym lub cyklem instrukcyjnym.
Składa się on z kilku faz zwanych cyklami maszynowymi, których liczba odpowiada liczbie dostępów do pamięci.
Pierwszy cykl maszynowy w każdym cyklu rozkazowym to cykl pobrania kodu rozkazu. Jeżeli argumenty rozkazu znajdują się w rejestrach procesora, to wykonanie operacji zakodowanej w tym rozkazie może nastąpić bezpośrednio po jego pobraniu, czyli w tym samym cyklu maszynowym.
Jeżeli jednak argumenty tego rozkazu znajdują się w kodzie programu lub w pamięci, to następne cykle maszynowe będą cyklami odczytu pamięci.
Rozkaz powinien też specyfikować miejsce przesłania wyniku operacji. Podobnie jak dla argumentów, adres przeznaczenia może znajdować się w rejestrze, w kodzie programu lub w pamięci. Może on zostać zapisany do jakiegoś rejestru procesora i wówczas nie jest wymagany osobny cykl maszynowy dla tej operacji. Ale może też zajść przypadek wymagający przesłania wyniku do pamięci. Wtedy rozkaz musi określać adres tego miejsca. Układ sterowania zapewni, że ostatnim cyklem maszynowym takiego cyklu rozkazowego będzie cykl zapisu do pamięci.
Argumenty operacji i wynik operacji nazywane są często operandami danych operacji. Mówi się o operandach źródłowych (argumentach) i operandach przeznaczenia (wynikach).
Na rysunku przedstawiono graficznie kolejne fazy cyklu rozkazowego. Na dwóch poziomach zaznaczono fazy zaangażowania procesora (dolny poziom) i pamięci (górny poziom). Pokazany na rysunku przykładowy cykl instrukcyjny składa się z 4 faz:
fazy pobrania rozkazu
dwóch faz pobrania argumentów rozkazu
fazy zapisu wyniku do pamięci
Czas trwania fazy pobrania rozkazu zależy od rodzaju procesora i rodzaju rozkazu.
Jeżeli procesor jest 8-bitowy i rozkaz zawiera 8-bitowy kod operacyjny rozkazu i 16-bitowy adres argumentu, to faza pobrania rozkazu składa się z 3 cykli maszynowych odczytu pamięci. Pierwszy cykl jest cyklem odczytu kodu operacyjnego (faza pobrania rozkazu), drugi jest cyklem odczytu jednego bajta adresu i trzeci jest odczytem drugiego bajta adresu.
Jeżeli procesor (i rozkaz) jest 32-bitowy, to zarówno kod operacyjny, jak i adres argumentu można odczytać z pamięci w jednym cyklu maszynowym.
Pobranie argumentu może być jednocyklowe lub wielocylklowe.
Często argument ma długość równą długości słowa w pamięci i wówczas pobranie odbywa się w jednym cyklu.