3.1 KiB
3.1 KiB
Kódování instrukcí
- instrukce musí obsahovat
- typ operace
- adresu operandů
- typ operandů
- modifikátory adresy
- modifikátory operace
- jednotlivé typy operandů vyžadují různou délku pole pro jejich uložení v instrukci
- podle způsobu kódování se dělí na dva typy
Instrukce s pevnou délkou
- všechny instrukce jsou stejně dlouhé (např. 32 bitů)
- časté u procesorů RISC
- výhoda: snadné a rychlé člení a dekódování dat
- nevýhoda: nízká efektivita kódování
- příklad: MIPS
- procesor RIST s registrovou ISA (32 registrů)
- všechny instrukce mají délku 32 bitů
- adresování paměti možné jen bázovou adresou nebo nepřímou adresou
- 3 základní formáty instrukcí
- formát I (Immediate)
- obsahuje operand o délce 16 bitů
- formát J (Jump)
- pro skokové instrukce
- obsahuje 26bitový offset pro cílovou adresu
- formát R (Register)
- obsahuje pole pro určení 3 registrů (source, target, destination), pole pro délku posuvu a rozšířený operační kód
- formát I (Immediate)
Instrukce s proměnnou délkou
- jednotlivé instrukce jsou zakódované do různého počtu bytů v závislosti na počtu operandů, délce adresy nebo přímého operandu atd.
- časté u procesorů CISC
- výhoda: efektivnější kódování složitých instrukcí
- nevýhoda: obtížné čtení a dekódování
- příklad: IA-32
- aritmetické a logické operace
- operandy mohou být v registrech nebo v paměti
- dvouadresové instrukce
- adresování paměti
- adresa může být např.:
MOV EAX,EBX+[ECX*4]+0x0100
- adresa může být např.:
- aritmetické a logické operace
Kódování nstrukcí procesoru H8S
- délka instrukcí je 2, 4, 6 nebo 8 bytů
- při adresování instrukcí (skoky atd.) je délka adresy 8 nebo 24 bitů
- při adresování dat je délka adresy 8, 16 nebo 32 bitů
Logický a fyzický adresní prostor
Logický adresní prostor
- je určen rozsahem adres, které může procesor zpracovat v instrukcích
- délka adres v instrukci + u některých procesorů modifikace adres segmentováním
Fyzický adresní prostor
- je určen velikostí fyzické paměti, se kterou může procesor pracovat
- počet adresních vodičů
Mapovací mechanismus
- u jednoduchých procesorů není (logický a.p. = fyzický a.p.)
- u výkonných procesorů je MMU (Memory Management Unit) pro segmentování a stránkování
Adresní prostory H8S
- logické adresní prostory
- kódový adresní prostor (16 MB)
- datový adresní prostor (4 GB)
- fyzický adresní prostor
Formát adresy dat procesoru H8S
- logické adresování dat používá 32bitovou adresu
- v instrukci lze použít 8, 16 nebo 32bitovou adresu
- vyšší bity adresy doplní procesor
Formát adresy instrukcí procesoru H8S
- logické adresování instrukcí používá 24bitovou adresu
- v instrukci lze použít 8 nebo 24bitovou adresu
- vyšší bity adresy doplní procesor
Převod logické adresy na fyzickou
- logická adresa je 32bitová (data) nebo 24bitová (instrukce)
- fyzická adresa je 24bitová
- 8 nejvyšších bitů adresy dat se ignoruje