From a04f606974d1d17b55f9c59980844a348449b491 Mon Sep 17 00:00:00 2001 From: Filip Znachor Date: Sat, 10 Jun 2023 17:07:23 +0200 Subject: [PATCH] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20pozn=C3=A1mek=20z=20PO?= =?UTF-8?q?T=20k=20prov=C3=A1d=C4=9Bn=C3=AD=20instrukc=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KIV POT/06. Provádění instrukcí.md | 58 ++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 KIV POT/06. Provádění instrukcí.md diff --git a/KIV POT/06. Provádění instrukcí.md b/KIV POT/06. Provádění instrukcí.md new file mode 100644 index 0000000..c01e662 --- /dev/null +++ b/KIV POT/06. Provádění instrukcí.md @@ -0,0 +1,58 @@ +# 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 \ No newline at end of file