Tématický okruh
25. Instrukce mikropočítačů
· Úplný soubor instrukcí
· Zpracování instrukcí, adresování operandů
· Počítače RISK
Sylabus:
Studentská práce:
Zpracování instrukcí
Každý mikroprocesor je od výrobce vybaven souborem instrukcí, který ve spojení s architekturou mikroprocesoru rozhoduje o volbě konkrétního typu mikroprocesoru pro určitou aplikaci. Doba provádění instrukce je určena frekvencí hodinových signálů. Základní časovou jednotkou zpracování instrukce je takt. Každá instrukce je vykonána za určitý počet taktů. Provádění instrukce začíná jejím načtením z operační paměti, z adresy, kterou udává čítač instrukcí. U skokových instrukcí se modifikuje obsah čítače instrukcí.
Po připojení mikroprocesoru k napájecímu zdroji se do čítače instrukcí předává technickými prostředky počáteční adresa. V paměťovém místě s touto adresou musí být zapsána první instrukce tzv. inicializačního programu, který uvede mikropočítač do počátečního vnitřního stavu. Jedná se o stav nazývaný RESET a je vyvolán zapnutím počítače nebo signálem na stejnojmenné vstupní svorce procesoru. Data mohou mít 8, 16, 32 nebo i více bitů.
Instrukční soubor
Instrukce mikropočítače zapisujeme
pomocí symbolických názvů, které jim
přiřadil výrobce. Ty jsou potom
přeloženy pomocí softwarového překladače do
strojového kódu, který dokáže mikroprocesor zpracovat.
Formát instrukčního slova je závislý na úrovni strojového jazyka. Obvykle se
instrukční slovo skládá z
operační a adresní části, jak je znázorněno na obrázku.
Délka instrukce je obecně N bitů. Operační část instrukce obsahuje tzv.
operační znak
operace, která se má
vykonat. Adresní část instrukce obsahuje odkaz na
operandy, se kterými se má operace provést.
Znázornění skladby instrukce Instrukce můžeme podle

Instrukce můžeme podle jejich určení rozdělit do několika skupin:
Aritmetické instrukce
Jedná se o instrukce prováděné v ALU. Mikroprocesory jsou vybaveny pouze jednoduchými operacemi, např. sčítáním a odčítáním, násobením a dělením, které jsou prováděny na dvou operandech. Jeden operand je ve střadači a druhý ve speciálním registru nebo v paměti. Příkladem může být instrukce
ADD C,
která provádí součet obsahu registru C s obsahem střadače a výsledek uloží do střadače (A)=(A)+(C). Závorkou je vyznačeno, že se jedná o obsah příslušného registru.
Logické instrukce
Tyto instrukce realizují logické operace jako negaci, logický součet, logický součin, exklusivní součet, apod. Operace se provádějí na operandu umístěném ve střadači nebo mezi střadačem a operandem v registru nebo v operační paměti. Logické operace ovlivňují též příznakové bity. Příkladem může být operace logického součinu
ANI 7AH,
která provádí logický součin přímého operandu 7AH s obsahem střadače. Logická operace.
Instrukce přesunů
Instrukční soubor musí obsahovat instrukce, které umožní přesouvat data mezi jednotlivými bloky mikropočítače. Nejdůležitější jsou přesuny dat mezi registry, pamětí a jednotkami vstupu/výstupu. Tyto instrukce neovlivňují přenášená data ani příznakové bity.
Instrukce skoků
Při řešení úloh podle určitého programu je třeba často rozhodnout o dalším postupu, často je nutné vybrat postup výpočtu ze dvou možností. K tomu slouží instrukce podmíněného nebo nepodmíněného skoku.
Instrukce nepodmíněného skoku řídí změnu v posloupnosti instrukcí bez ohledu na výsledek předchozí operace. Následující instrukce se vybere z paměťového místa, jehož adresa je uvedena v adresní části instrukce skoku. Touto adresou se nahradí obsah čítače instrukcí. Příkladem může být instrukce
Způsoby adresování operandů
Obsah adresové části instrukce nemusí vždy udávat skutečnou absolutní adresu, na níž jsou operandy uloženy, ale jen informaci, z které lze tuto adresu odvodit. Způsob tohoto odvození je adresovací metodou, která je specifikována v operační části instrukce.
Z důvodu zmenšení počtu bitů v adresní části instrukce se používají různé způsoby adresování. Operand může být uložen v operační paměti, v univerzálním registru nebo přímo v instrukci jako přímý operand. Způsob adresování je vždy určen druhem instrukce a závisí na architektuře počítače a jeho souboru instrukcí. Uvedeme zde některé základní druhy adresování společné většině mikropočítačů.
• Adresování přímým operandem
je druh adresování, u kterého je v adresní části instrukce namísto odkazu na operand umístěn samotný operand jako bezprostřední součást instrukce. Proto se tomuto způsobu adresování říká též bezprostřední (immediate). Uvažujme, že programový čítač je ve stavu PC=1A20H. Znamená to, že ukazuje na instrukci na této adrese obsažené.
Adresování přímým operandem

• Přímé adresování
- při tomto druhu adresování obsahuje adresní část instrukce přímo absolutní adresu paměťového místa, na které je uložen operand.
Přímé adresování

Nepřímé adresování
využívá adresní část instrukce k určení adresy nepřímo. Instrukce totiž obsahuje odkaz na registr procesoru nebo na pozici v operační paměti, kde teprve nalezneme adresu operandu. Použití nepřímé adresy se označuje speciálním znakem.
Příklad nepřímého adresování
|
|
• Registrové adresování
využívá toho, že operand je uložen v některém z registrů procesoru. Adresní část instrukce obsahuje pouze adresu registru. Tato adresovací metoda se často používá ve dvouadresových instrukcích pro adresování jednoho nebo dvou operandů. Instrukce
Registrové adresování
Indexové adresování
se vyznačuje tím, že v adresní části instrukce je odsažena jen jedna část adresy, druhá část je odsažena v indexovém registru. Skutečná adresa se pak tvoří jako součet adresy v instrukci a obsahu indexového registru. Tento způsob se také nazývá modifikace adresy.
Absolutní adresování
se vyznačuje tím, že absolutní adresa obsažená v adresní části instrukce je skutečnou (efektivní) adresou paměťového místa v operační paměti nebo adresou registru. Nevýhodou je dlouhá adresní část instrukce
Relativní adresování
využívá relativní adresu v adresní části instrukce a umožňuje výrazné zkrácení adresní části instrukce. Při relativním adresování se absolutní adresa vypočítá jako součet bázové adresy a relativní adresy, nazývané posunutí. Bázová adresa je obsažena buď v čítači instrukcí PC nebo v bázovém registru.
RISC procesory
Struktura RISC procesoru
Centrální procesní jednotka (CPU) je koncipována pro provádění operací se souborem rychlých vnitřních registrů. Výpočty jsou prováděny mezi operandy uloženými ve velmi rychlých registrech CPU nebo registry a konstantami obsaženými v instrukci. Proto CPU obsahuje soubor registrů pro uchování dat. Pole registrů pro uložení operandů bývá poměrně velké, např. 32 registrů délky 32 bitů.
RISC procesor obsahuje ke zrychlení své činnosti také podpůrné nebo pomocné procesory. Jsou to hardwarové jednotky, které zvyšují výpočetní výkon a funkčnost systému Bývají použity dvě takovéto pomocné jednotky.
Organizace procesoru RISC
|
|
Systém vnitřních cache pamětí uchovává často používaná data a instrukce, aby byl minimalizován přístup do hlavní paměti, který je pomalejší. Většina RISC procesorů má cache paměť dělenou na dvě oddělené části. Je to instrukční cache (I-cache) a datová cache (D-cache). Významnou vlastností RISC procesorů je paralelní architektura, která i při hodinovém kmitočtu 40 MHz vede k vysokým výpočetním výkonům. Například paralelní dekódování instrukcí dovoluje
Organizace RISC systému
RISC procesor je pouze součástka, která pomáhá utvářet kompletní systém. RISC systém je tvořen jedním nebo několika RISC procesory, bloky hlavní paměti, V/V zařízeními a systémem sběrnic různých úrovní. S vnějším prostředím je procesor spojen velmi rychlou centrální sběrnicí šířky 32 bitů. Ta je schopná přenášet data rychlostí kolem 150 Mbytů/s. Na tuto sběrnici se připojují případné.