Shrnutí na Struktura a provádění instrukcí procesoru
Struktura a provádění instrukcí procesoru: Detailní rozbor
Úvod
Instrukční sada procesoru popisuje soubor příkazů (instrukcí), které může mikroprocesor vykonávat. Instrukce jsou základní jednotkou programu a každá obsahuje informaci o typu operace, datech, se kterými má pracovat, a o tom, kam uložit výsledek.
Definice: Instrukce je binární kód uložený v paměti, který říká procesoru, jakou operaci provést, s jakými operandy a kam uložit výsledek.
Základní části instrukce
Instrukce se obvykle skládá z následujících částí:
- Operační kód (opcode) – určuje typ operace, např. sčítání nebo skok.
- Operand(y) – data nebo odkazy na data; mohou být konstanty, registry nebo adresy v paměti.
- Adresovací mód – způsob získání operandů.
Příklad struktury instrukce
[ OPCODE | OPERAND1 | OPERAND2 ]
Příklad v assembleru:
- ADD R1, R2
- opcode: ADD
- operand1: R1
- operand2: R2
Definice: Opcode je část instrukce, která jednoznačně určuje prováděnou operaci.
Adresovací módy (jak získat data)
Adresovací mód určuje, odkud procesor vezme operand. Základní módy:
- Immediate (okamžitý) – operand je přímo v instrukci.
- Register (registr) – operand je uložen v registru procesoru.
- Direct (přímý) – instrukce obsahuje adresu v paměti, kde stojí operand.
- Indirect (nepřímý) – instrukce obsahuje registr, který obsahuje adresu operandu.
- Indexed (indexový) – adresa se vypočítá jako základní adresa plus index z registru.
Definice: Adresovací mód je způsob, jakým instrukce specifikuje umístění operandů.
Tabela porovnání základních adresovacích módů:
| Adresovací mód | Kde je operand | Výhoda | Nevýhoda |
|---|---|---|---|
| Immediate | V samotné instrukci | Rychlé, žádné další načítání | Omezená velikost hodnoty |
| Register | V registru CPU | Nejrychlejší přístup | Omezený počet registrů |
| Direct | V paměti na dané adrese | Přímý přístup k paměti | Pomalejší než registry |
| Indirect | Adresa v registru | Flexibilní ukazatele | Další paměťový přístup |
| Indexed | Vypočtená adresa | Užitečné pro pole | Potřeba výpočtu adresy |
Instrukční cyklus (zpracování instrukce)
Instrukce se vykonává opakovaně podle instrukčního cyklu:
- Načtení instrukce (Fetch)
- Obsah programového čítače (PC) určuje adresu instrukce.
- Instrukce se načte z paměti do instrukčního registru (IR).
- PC se zvýší na adresu další instrukce.
- Dekódování instrukce (Decode)
- Řadič analyzuje opcode, zjistí typ operace, počet operandů a adresovací módy.
- Vykonání instrukce (Execute)
- ALU provede výpočet nebo logickou operaci.
- Může dojít ke čtení nebo zápisu paměti nebo ke změně PC (skok).
- Uložení výsledku (Write-back)
- Výsledek se uloží do registru nebo paměti.
- Aktualizují se stavové příznaky (flagy).
Definice: Instrukční cyklus je opakovaný postup fetch–decode–execute–write-back, kterým procesor provede jednu instrukci.
Praktický příklad: Načtěte a vykonejte ADD R1, R2
- Fetch: PC ukazuje na instrukci, instrukce se načte do IR.
- Decode: Řadič rozpozná opcode ADD a dva registry jako operandy.
- Execute: ALU sečte obsah R1 a R2.
- Write-back: Výsledek se uloží do cílového registru; případně se nastaví příznaky.
Stavové registry a příznaky
Po vykonání aritmetické nebo logické instrukce se často aktualizují příznaky ve stavovém registru:
- Z (Zero) – výsledek je nulový.
- C (Carry) – nastal přenos/borrow při aritmetice.
- S / N (Sign) – znaménko výsledku.
- O / V (Overflow) – aritmetické přetečení.
Tyto příznaky se využívají při podmíněných skocích a rozhodování v programu.
Vliv architektury na instrukční sadu
| Architektura | Charakteristika instrukcí | Výhoda | Nevýhoda |
|---|---|---|---|
| CISC (Complex Instruction Set Computer) | Složité instrukce, proměnná délka | Méně instrukcí v programu | Složitější dekódování |
| RISC (Reduced Instruction Set Computer) | Jednoduché instrukce, pevná délka | Jednoduché pipeline a rychlé vykonání | Program může být delší |
**Defini
Už máš účet? Přihlásit se
Instrukční sada procesoru
Klíčová slova: Instrukční sada procesoru
Klíčové pojmy: Instrukce je binární kód definující operaci, operandy a cíl výsledku, Opcode určuje typ operace (např. ADD, SUB, JMP), Operand může být immediate, registr nebo adresa v paměti, Adresovací mód ovlivňuje délku a rychlost instrukce, Instrukční cyklus: Fetch, Decode, Execute, Write-back, Stavové příznaky Z, C, S/N, O/V aktualizují stav CPU, RISC používá jednoduché pevné délky instrukcí, CISC proměnnou délku, Indirect adresování používá registr obsahující adresu operandu, Indexed mód se hodí pro práci s poli a indexy, Decode krok určuje adresovací módy a počet operandů, Write-back ukládá výsledek do registru nebo paměti, Pochopení sady je klíčové pro optimalizaci a ladění kódu