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é.