Časovací obvody a distribuce hodinového kmitočtu mikrořadičů AVR

Časování mikrořadiče AVR

CPU je  sekvenční logický obvod, který je synchronizován hodinovými impulsy, které zajišťují časovou součinnost všech vnitřních obvodů. Zdroj hodinových impulsů je istalován přímo na čipu integrovaného obvodu mikrořadiče, ale může i být přijen externí zdroj hodinových impulzů. Kmitočet oscilátoru ve zdroji hodinových impulsů bývá zpravidla definován velmi přesně krystalem či keramickým rezonátorem. U méně přesných a nenáročných aplikací mikrořadičů na časovou přesnost může být kmitočet hodinového generátoru odvozený od externího RC integračního článku. Krystal se připoje na určené vývody pouzdra k vnitřnímu oscilátoru hodinového kmitočtu mikrořadiče. 

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

obrazek

kde fclk je kmitočet hodinových impulsů.

obrazek

Obr. 1: Takt mikrořadiče AVR

 

Z definovaného počtu taktů se skládá strojový cyklus mikroprocesoru. V každém strojovém cyklu 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ů. U mikrořadičů řady AVR se většina instrukcí vykonává během jednoho strojového cyklu. Takto je vytvořen 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 je dáno tím, že se používá tzv. zřetězené vykonání instrukcí (pipelining). Při něm dochází k překrývání výběrové a prováděcí fáze instrukce, což vede ke zrychlení činnosti mikroprocesoru.

obrazek

Obr. 2: Pipelining

 

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

 

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án samostatně 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í.

obrazek

Obr. 3: Subprocesory

 

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ždou dobu T je však vždy jedna dokončena). Pokud by mikroprocesor nebyl zřetězen, vykonal by instrukci za 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.

Zdroje
  • HRBÁČEK, Jiří. Komunikace mikrokontroléru s okolím. 1. vyd. Praha: BEN - technická literatura, 1999, 159 s. ISBN 80-86056-42-21.
  • MATOUŠEK, David. Práce s mikrokontroléry ATMEL AVR ATmega16. 1. vyd. Praha: BEN - technická literatura, 2006, 319 s. μC. ISBN 80-730-0174-8.
  • VÁŇA, Vladimír. Mikrokontroléry ATMEL AVR: programování v jazyce C : popis a práce ve vývojovém prostředí CodeVisionAVR C. 1. vyd. Praha: BEN - technická literatura, 2003, 215 s. ISBN 80-730-0102-0.

Obrázky

  • Obr. 1, 2, 3: [online]. [cit. 2015-01-30]. Dostupné z: http://www.atmel.com/images/doc2503.pdf
Zapamatuj si
  • na hodnotě hodinového kmitočtu závisí početní výkon mikrořadiče;
  • piepeling - zřetězené vykonávání instrukcí;
  • mikrořadiče AVR většinu instrukcí vykonají během jedné periody hodinových impulzů.