Čítač instrukcí
Čítač instrukcí (anglicky Program Counter – PC) nebo také instrukční ukazatel (anglicky Instruction Pointer – IP) je speciální registr v procesoru, jehož účelem je adresovat instrukce strojového kódu v operační paměti počítače. Strojový kód se vykonává (až na výjimky) sekvenčně, a tak po načtení strojové instrukce z paměti – z adresy dané tímto registrem – se hodnota registru zvýší o velikost instrukce (včetně operandů) a hodnota adresy v registru ukazuje na následující instrukci. Ve většině procesorů se čítač instrukcí zvýší automaticky po načtení programu instrukcí. K postupnému volání z paměti slouží určité pokyny: skoky, volání podprogramu a návrat, přerušení sekvence zavedením nové hodnoty do čítače instrukcí.
Takový skok instrukcí umožňuje nové adrese, aby byla vybrána jako začátek další části toku instrukcí z paměti. Umožňují načíst (zapsat) nové hodnoty do registru čítače instrukcí. Volání podprogramu je dosaženo pouhým čtením starého obsahu čítače instrukcí, předtím než je přepsán novou hodnotou a uložen do paměti. Návrat z podprogramu se docílí zapsáním uložené hodnoty zpět do čítače instrukcí.
Funkce jednoduchého čítače instrukcí
Procesor (anglicky Central Processing Unit zkratka CPU) jednoduchého počítače obsahuje hardware (řídící jednotku a aritmeticko-logickou jednotku), jež provádí instrukce, které se načítají z paměti. Většina instrukčních cyklů se provádí tak, že CPU pošle adresy na adresovou sběrnici do paměti a ta pošle obsah této paměti jako data na datovou sběrnici.
Čítač instrukcí je jedním z mnoha hardwarových registrů na procesoru. Skládá se podobně jako většina registrů z banky z binárního zámku (binární zámek je také známý jako flip-flop neboli klopný obvod). V případě čítače instrukcí celé číslo představuje adresu v paměti, které načítá další.
Jakmile jsou data (instrukce) přijata na sběrnici, je zvýšen čítač instrukcí. U některých procesorů je toho dosaženo tím, že přidá 000 .. 001 do jeho obsahu a aretační výsledek do seznamu, který poslouží jako nový obsah. Na většině CPU je čítači instrukcí realizován jako registr, který je vnitřně zapojen tak, že počítá až na další hodnotu, pokud je určitý signál z vnějšku. Takovýto registr se v elektronice nazývá binární čítač, a tím i původ termínu čítač instrukcí.
Vlastnosti čítače instrukcí
Přítomnost čítače instrukcí v procesoru má dalekosáhlé důsledky pro náš způsob myšlení, když se vžijeme do role čítače instrukcí. Čítač instrukcí (nebo ekvivalentní blok hardwaru, který slouží ke stejnému účelu) je velmi zásadní pro von Neumannovu architekturu. Například funkcionální programovací jazyk nabízí velké naděje na vysoké úrovni s kombinační logikou, která je na úrovni assembleru. Dokonce i většina výzkumníků se pokusila o emulaci do mikrokódu v konvenčních počítačích. Ale ve skutečnosti kombinátory jsou tak jednoduché, že by mohl být v zásadě prováděny přímo v hardwaru bez použití mikrokódu, nebo čítače instrukcí.
Reference
V tomto článku byl použit překlad textu z článku Program counter na anglické Wikipedii.