Časování CPU, zřetězení instrukcí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Verze k tisku již není podporovaná a může obsahovat chyby s vykreslováním. Aktualizujte si prosím záložky ve svém prohlížeči a použijte prosím zabudovanou funkci prohlížeče pro tisknutí.

Časování mikroprocesoru

CPU je synchronní sekvenční obvod, ke své činnosti potřebuje hodinové impulsy,které synchronizují veškerou jeho činnost. Zdroj hodinových impulsů je integrovánpřímo na čipu. Kmitočet oscilátoru ve zdroji hodinových impulsů je určen velmipřesně krystalem či keramickým rezonátorem, který se připojí na patřičné vývodypouzdra. Někdy je možné připojit RC článek (levný, avšak malá kmitočtová stabilita).Kmitočet hodinových impulsů nemusí být shodný s kmitočtem oscilátoru (ten je dánkrystalem), může být např. poloviční, tj. je získán dělením kmitočtu oscilátoru dvěma.

Perioda hodinových impulsů určuje tzv. takt (hodinový cyklus) mikroprocesoru:

Z určitého počtu taktů se skládá strojový cyklus mikroprocesoru. V každém strojovémcyklu probíhá posloupnost vnitřních činností, které se opakují při vykonání každéinstrukce.Pro vykonání instrukce je potřebný určitý počet strojových cyklů. Ty vytvářejíinstrukční cyklus. Instrukční cyklus tedy představuje dobu potřebnou pro vykonáníinstrukce.Skutečná doba vykonání instrukce však může být kratší, než instrukční cyklus. To jedáno tím, že se používá tzv. zřetězené vykonání instrukcí (pipelining). Při němdochází k překrývání výběrové a prováděcí fáze instrukce, což vede ke zrychleníčinnosti mikroprocesoru:

V ideálním případě se dosáhne dvojnásobného zrychlení instrukčního cyklu. Bude-livšak např. instrukce 2 instrukcí skoku, nebude se instrukce 3 provádět a v této době sebude číst nová instrukce z cílového místa skoku. Provádění instrukcí bylo tedyzpožděno o fázi výběru instrukce 4, to znamená, že doba vykonání instrukce skoku jedvojnásobná oproti době provedení ostatních instrukcí (k době provedení instrukceskoku, tj. instrukce 2, musí být připočtena doba výběru instrukce 4).

Poznámky:

Zřetězení instrukcí může být i vícenásobné: Provádění každé instrukce lze rozdělit do několika dílčích úkonů, z nichž každý může být vykonávánsamostatně v jiné části procesoru (standardní dílčí úkony jsou: načtení instrukce, dekódováníinstrukce, výpočet adres operandů, načtení operandů z paměti, provedení operace, předání výsledku).Mikroprocesor se skládá z řady sériově řazených subprocesorů. Subprocesory pracují současně,každý však na jiné instrukci a v jiné její fázi (vykonává jiný dílčí úkon), přičemž si výsledky svéčinnosti postupně předávají.

Je-li v subprocesoru Sk zpracovávána poslední část n-té instrukce, je v subprocesoru S(k-1)zpracovávána (k-1) část (n+1) instrukce, atd., až v subprocesoru S1 je zpracovávána první část(n+k-1) instrukce. Předpokládejme, že všechny subprocesory vykonají svůj úkon za stejnou dobu T.Pak za tutéž dobu T je vykonána každá z instrukcí (najednou je rozpracováno k instrukcí, za každoudobu T je však vždy jedna dokončena). Pokud by mikroprocesor nebyl zřetězen, vykonal by instrukciza dobu kT. Zřetězení zrychlí tedy činnost mikroprocesoru až k-krát, kde k je počet subprocesorů.Tohoto maximálního zrychlení není však ve skutečnosti nikdy dosaženo, neboť rychlost je negativněovlivněna skoky v programu, přerušením či nespojitostí toku dat.