Strojové inštrukcie

Argumenty strojových inštrukcií
Fázy spracovania
Urýchlenie CPU
Typy strojových inštrukcií
RISC alebo CISC ?
Odkazy na príbuzné témy


Strojové cykly sa líšia typom mikroinštrukcie, ktorá sa práve vykonáva. V našom počítačovom systéme ideme budovať ďalšiu úroveň - strojové intrukcie Jedna strojová inštrukcia sa skladá z niekoľkých strojových cyklov s rôznymi mikroinštrukciami.

OPERAČNÝ SYSTÉM
STROJOVÉ INŠTRUKCIE
MIKROPROGRAMOVANIE
LOGICKÉ OBVODY

Strojové inštrukcie závisia od typu procesora. Ak sú typy kompatibilné, pracujú s tou istou inštrukčnou sadou. Pri kompilácii nového vytvoreného programu sa program prekladá do strojového kódu daného procesora, na ktorom kompilácia prebieha.



Argumenty strojových inštrukcií     Nahor

Každá strojová inštrukcia sa skladá z operačného kódu a operandov (argumentov) inštrukcie.

OPERAČNÝ KÓDOPERAND 1OPERAND 2

Všetky inštrukcie majú 2 operandy (až na negáciu). Operandy sa odvolávajú na adresy registrov, adresy pamäťových miest, či relatívne adresy. Operandy môžu byť nasledujúceho typu:


TYP OPERANDUPRÍKLAD
Priamy operand - immediatenapr. ADD r1, 400 - k číslu v registri r1 pripočítaj číslo 400
Priama adresácia - directnapr. ADD r1, (400) - k číslu v registri r1 pripočítaj číslo z pamäte z adresy 400
Nepriama adresácia - indirectnapr. ADD r1, @(400) - k číslu v registri r1 pripočítaj číslo z pamäte z adresy, ktorá sa nachádza na adrese 400
Typ register I. - reg. directnapr. ADD r1, r2 - k číslu v registri r1 pripočítaj číslo z registra r2
Typ register II. - reg. indirectnapr. ADD r1, (r2) - k číslu v registri r1 pripočítaj číslo, ktorého adresa sa nachádza v registri r2
Posunutý typ - indexednapr. ADD r1, (r2+400) - k číslu v registri r1 pripočítaj číslo na adrese, ktorú dostaneme posunom adresy v registri r2 o 400

Podľa typu inštrukcie sa jedna inštrukcia vykonáva na 5 až 40 strojových cyklov. Ak napr. taktovacia frekvencia CPU je 1GHz, tak takýto procesor vykoná za 1 sekundu 250 miliónov strojových cyklov. Ak jedna strojová inštrukcia zaberie v priemere 25 MC, tak procesor so spomínanou taktovacou frekvenciou je schopný vykonať 10 miliónov inštrukcií za 1 sekundu.


Fázy spracovania     Nahor

NÁZOV FÁZYPOPIS
FETCH INSTRUCTION
FI
Načítanie kódu inštrukcie z operačnej pamäte (cache pamäte) z miesta,na ktoré ukazuje IP register a následné uloženie do precovného registra, IP register sa inkrementuje. (1 MC)
DECODE INSTRUCTION
DI
Dekódovanie kódu inštrukcie, výpočet adresy odpovedajúcej mikroinštrukcie na realizáciu strojovej inštrukcie. (1 MC)
FETCH DATE
FD
Načítanie dát - operandov inštrukcie podľa druhu inštrukcie, podľa adresovacieho režimu, IP register sa inkrementuje. (min. 2 MC)
EXECUTION INSTRUCTION
EI
Vykonanie inštrukcie, súčasne sa mení príznakový register -Flags. (viac MC)
WRITE DATE
WD
Uloženie výsledku operácie, zápis dát do pamäte. ( min. 1 MC)


Urýchlenie CPU     Nahor

Keďže vo väčšine CPU len "prehadzuje" dáta (2. takt je neaktívny) medzi operačnou pamäťou a registrami, urýchlenie práce sa realizuje paralelným spracovaním fáz - tzv. PIPELINING - zreťazenie vykonávania fáz inštrukcií. Je snaha v každom strojových cykle zapísať výsledok operácie.

Ďalšou možnosťou urýchlenia práce CPU je predpovedanie výsledku operácie. Ak nasledujúca operácia je podmienený skok, tak CPU môže buď čakať na výsledok, alebo náhodne vybrať jeden z možných smerov, pričom ak výber cesty je úspešný, pokračuje ďalej, ak nie, vykonané operácie sa "zahodia". CPU môže tiež sledovať obe možné cesty (2 ALU) pri podmienenom skoku, pričom zlá cesta sa zruší.

Cache pamäť je ďalším urýchlením práce CPU. Aby sa po každú inštrukciu nechodilo zvlášť do pamäte, naraz sa naloaduje napr. 8kB dát resp. kódu inštrukcií.



Typy strojových inštrukcií     Nahor
Každá inštrukcia pozostáva z kódu (typu) inštrukcie a operandov (argumentov) napr. pre súčet čísel má inštrukcia nasledujúci tvar: ADD kam_pripočítaj, čo, resp. ADD r1, r0. V nasledujúcom zozname sa nachádzajú najčastejšie používané inštrukcie.

(Pre CPU Intel)

  1. Inštrukcie presunu
    • MOV - presun dát

  2. Aritmetické inštrukcie
    • ADD - sčítanie
    • SUB - odčítanie
    • MUL - násobenie
    • DIV - delenie

  3. Logické inštrukcie
    • AND - logický súčin
    • OR - logický súčet
    • XOR - exklusive OR
    • NOT - negácia

  4. Inštrukcie posunu
    • ROL - rotácia vľavo
    • ROR - rotácia vpravo
    • ARL - aritmetická rotácia vľavo (obnovenie znamienka na 1. bite
    • ARR - aritmetická rotácia vpravo (obnovenie znamienka na 1. bite
    • SHL - posun do ľava s pridaním C (carry) bitu z Flag registra

  5. Inštrukcie pre prácu so zásobníkom
    • PUSH - uloženie na vrchol zásobníka
    • POP - výber z vrcholu zásobníka

  6. Inštrukcie pre riadenie toku spracovania - nepodmienené a podmienené skoky - prepisuje sa IP register
    • JMP - absolútny resp. relatívny skok - kde sa prenáša riadenie
    • JNZ - jump not zero
    • JNC - jump not carry
    • JGE - jump great egre (>=0)
    • JC - jump carry

  7. Inštrukcie pre volanie podprogramov a prerušení
    • CALL - volanie podprogramu (návratová adresa sa zapíše do zásobníka, až potom sa prepíše IP register)
    • RET - návrat z procedúry
    • CNZ - call not zero
    • RETZ - return zero
    • INT - interupt (prerušenie)
    • RTI - return interupt (návrat z prerušenia)

  8. Inštrukcie vstupu a výstupu
    • IN - čítanie zo vstupno-výstupného portu
    • OUT - zápis na vstupno-výstupný port

  9. Inštrukcie, ktoré menia bity príznakového registra
    • HALT - zastavenie činnosti CPU
    • SEC - set carry
    • CLC - clear carry
    • STI - set interupt
    • CLI - clear interupt
    • ďalšie - napr. pre inštrukcie floating point

RISC alebo CISC ?     Nahor

Inštrukčná sada procesora môže byť dvojakého typu - CISC, alebo RISC:

CISC - complet instruction set computer - počítač s úplnou inštrukčnou sadou - programátor má širokú paletu inštrukcií a CPU ich realizuje bez PIPELININGU.

RISC - reducet instruction set computer - počítač s redukovanou inštrukčnou sadou - počet inštrukcií je malý, sú jednoduchšie, zložité inštrukcie sa rozkúskujú na niekoľko jednoduchších inštrukcií, pre zložité aritmetické inštrukcie sa používa koprocesor.



Odkazy na príbuzné témy     Nahor
500 najvýkonnejších počítačov sveta a ich funkcie
Assembler
Inštrukčná sada
RISC vs. CISC
Architektúra PC (En)

Predchádzajúca téma Obsah Nasledujúca téma

© Jana Machová