Instrukční cyklus
Instrukční cyklus je režim, ve kterém pracuje procesor. Od spuštění až po vypnutí se procesor (přesněji jádro procesoru, protože procesor může mít více jader) vždy nachází v jednom bodě instrukčního cyklu. Jedná se o proces, jakým jádro procesoru zpracovává strojové instrukce. Má-li procesor více fyzických jader, každé z nich pracuje nezávisle na ostatních a v jednom okamžiku se tedy každé může nacházet v jiné fázi instrukčního cyklu.
Základní pojmy
Procesor se skládá z aritmeticko-logické jednotky (ALU), řadiče, registrů a sběrnic. V instrukčním cyklu hrají roli především tyto registry a sběrnice:
- PC (program counter) - registr uchovávající paměťovou adresu, na které se nachází příští instrukce, která se bude vykonávat
- IR (instruction register) - registr, který obsahuje kód aktuálně prováděné instrukce
- DB (data bus) - datová sběrnice, na ni se vystavují data, která je třeba někam dopravit (např. z registru do hlavní paměti)
- AB (address bus) - adresová sběrnice, na ni se vystavuje adresa v hlavní paměti, ze které se čte nebo na kterou se zapisuje
Je-li v tomto článku zmíněn pojem hlavní paměť, pak je tím míněna operační paměť (typu RAM), v žádném případě se nejedná o médium pro trvalé ukládání dat jako je třeba pevný disk.
V každém procesoru se uvedené registry mohou jmenovat jinak, záleží na vůli výrobce.
Instrukční cyklus
- Počáteční nastavení
Do PC se nastaví výchozí hodnota, nastaví se povolení/zákaz přerušení - Čtení instrukce
Adresa instrukce je PC vystavena na AB, z hlavní paměti je vystaven obsah paměťového místa na DB, odkud je kód instrukce načten do IR. - Dekódování instrukce
Instrukční kód z IR je dekódován řadičem, současně jsou generovány řídící signály pro ALU a další interní obvody procesoru. PC vystaví svoji hodnotu na AB, odtud je hodnota přesunuta do ALU, kde je zvýšena o délku právě načtené instrukce a následně zapsána zpět do PC. - Čtení operandů
Má-li instrukce nějaké operandy, jsou v tomto momentě načteny z hlavní paměti do pracovních registrů - Vykonání instrukce
Podle dat v IR vyšle řadič potřebné signály do ALU, kde je instrukce provedena. Pokud má instrukce nějaké výstupy, jsou uloženy přes DB do pracovních registrů procesoru nebo s použitím AB rovnou do hlavní paměti. - Ošetření příčiny přerušení
Pokud nastalo přerušení, zpracovává se nyní. - Pokračuj bodem 2