2.5 KiB
2.5 KiB
Provádění instrukcí procesorem
Základní model
- kód programu a data jsou uložena ve vnější paměti
- procesor musí nejprve přečíst instrukci z paměti
- při provádění instrukce čte nebo zapisuje data do/z paměti
Fáze instrukčního cyklu
- instrukční cyklus = doba zpracování jedné instrukce
- 4 základní fáze
- fetch - čtení kódu instrukce z paměti
- decode - dekódování instrukce
- execute/memory - provedení instrukce, čtení nebo zápis z/do paměti
- write back - zpětný zápis výsledku do registrů procesoru
- každou fázi instrukce vykonává jiná část CPU
Proudové zpracování instrukcí
- při sekvenčním zpracování je využita vždy jen část CPU
- proudové zpracování umožňuje zpracování více instrukcí v různých fázích
- požadavky
- stejná délka zakódovaných instrukcí
- stejná délka jednotlivých fází
- stejná délka provádění instrukcí
CISC vs. RISC
- CISC
- složité instrukce (rozsáhlý instrukční soubor)
- různá délka instrukcí
- proměnná délka instrukčního cyklu
- výhoda: účinné instrukce (program obsahuje malé množství instrukcí)
- nevýhoda: obtížné proudové zpracování (instrukce se provádí pomalu)
- RISC
- jednoduché instrukce (omezený instrukční soubor)
- instrukce jsou stejné délky
- konstantní délka instrukčního cyklu
- nevýhoda: málo účinné instrukce (program obsahuje velké množství instrukcí)
- výhoda: snadné proudové zpracování (instrukce se provádí rychle)
Zpracování instrukcí v H8S
- čtení kódu instrukce
- postupně po 16 bitech (každé čtení = 1 MC, Machine Cycle)
- doba 1 MC závisí i na šířce datové sběrnice (3 nebo 6 taktů hodin)
- dekódování, provedení a zpětný zápis
- vyžaduje různý počet (1-19) MC
- každý MC trvá 1 takt hodin nebo 3/6 taktů při práci s pamětí
- současně se provádí čtení další instrukce (MC poté trvá více taktů hodin)
Upravené počítání strojových cyklů
- upravené počítání (podle Renesas)
- nepočítají se MC provedené současně s předchozí instrukcí
Závěr
- známe-li binární kód dané instrukce, můžeme určit:
- počet MC potřebných pro přečtení (fetch) instrukce
- počet čtení/zápisů do paměti provedených při vykonávání instrukce
- pro určení délky instrukčního cyklu je nutné znát počet MC potřebných k dekódování a provedení instrukce