1 / 32

Instrukce

Instrukce. Ve von Neumannovské koncepci (architektuře) počítačů jde vlastně o zvláštní typ dat. Instrukční soubor. styčný bod mezi návrhářem počítače a programátorem v abstraktním smyslu programátor nemá znát fyzický návrh – obvodové řešení

Download Presentation

Instrukce

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Instrukce Ve von Neumannovské koncepci (architektuře) počítačů jde vlastně o zvláštní typ dat

  2. Instrukční soubor • styčný bod mezi návrhářem počítače a programátorem • v abstraktním smyslu programátor nemá znát fyzický návrh – obvodové řešení • musí ale znát logický návrh, tedynapř. registrový a adresový model

  3. Instrukční sada Instrukční sada musí být: • funkčně úplná • musí dovolit uživateli formulovat libovolnou úlohu zpracování jeho dat na vyšší úrovni • účinná • často opakované funkce by měly být prováděny rychle a za pomoci malého počtu instrukcí

  4. Obsah instrukce Každá instrukce musí obsahovat: • operační kód (jaká operace má být vykonána) • odkaz a určení zdrojových operandů • umístění a určení výsledku • odkaz na další instrukci

  5. Modalita instrukcí • modalita operačního kódu • např. směr rotace • modalita operandů • např. velikost a umístění • modalita ochrany (paměti) • např. úroveň procesu

  6. Modalita operačního kódu • upřesnění operace • směr a vzdálenost rotace • způsob testování podmínky v podmíněném skoku • směr operace load/store • použití operandů (paměť / registry) • úprava výsledku po provedení operace

  7. Modalita operandů • způsob adresace přímé, nepřímé, ... • velikost a typ operandů stejnou instrukci možno vykonat nad různými daty • ovlivňuje přípravu instrukce • vícestupňové načítání • vícenásobné načítání

  8. Modalita ochrany • přístupová práva k operandům • ochrana paměti • právo vykonání instrukce • ochrana OS, procesu

  9. Dělení instrukcí IPodle počtu operandů • bezadresové • jednoadresové • dvouadresové • tříadresové • (čtyřadresové)

  10. Bezadresové instrukce • bez operandů (NOP, RET) • operandy dány implicitně • operand dán operačním kódem (CLI, TBA) • operace nad zásobníkem – zásobníková architektura všechny operandy jsou na (vršku) zásobníku instrukce jich ze zásobníku vyzvedne potřebný počet instrukce je vykonána případný výsledek je uložen zpět na zásobník

  11. Jednoadresové instrukce • zbývající dvě adresy (operandy) dány implicitně • obvyklé pro akumulátorovou architekturu ADD x ... Acc := Acc + x

  12. Dvouadresové instrukce • jedna z adres je použita jak pro operand, tak pro výsledek • Velmi obvyklé SUB A,4 ... A := A – 4

  13. Tříadresové instrukce • určeny jak oba operandy, tak umístění výsledku • pro větší délku instrukcí a výslednou délku instrukčního slova se nepoužívá často • se zvyšováním rychlosti pamětí roste flexibilita počítače a dává velké možnosti dobrým kompilátorům (nahrazovat tříadresové instrukce dvouadresovými).

  14. Zápis výrazu • Infixová notace (A-B) / (C+D*E) • Postfixová notace AB-CDE*+/ • Prefixová notace /-AB+C*DE (převod z infixové notace do postfixové a prefixové notace pomocí gramatiky výrazu)

  15. Gramatika výrazu • lze popsat stromem • (A–B) / (C+D*E) • AB-CDE*+/ • /-AB+C*DE

  16. Reverzní polská notace • Snadný výpočet pomocí zásobníku • Vstup – výraz v RPN: • číslo (proměnná): uložit na zásobník • operace: vyzvednout potřebný počet operandů provést operaci výsledek uložit na zásobník

  17. Y = (A–B) / (C+D*E)Y = AB–CDE*+/

  18. Dělení instrukcí IIPodle typu operace • aritmetické operace • logické operace • operace pro přesun dat uvnitř počítače • operace pro vstup/výstup dat do/z počítače • řídící operace

  19. 1. aritmetické instrukce • základní výpočetní operace + – * / abs, neg, inc, dec • speciální aritmetické operace práce v plovoucí řádové čárce logaritmy, odmocniny, ...... • typové konverze, překlady

  20. 2. logické instrukce • Booleovské operace AND, OR, NOT, XOR • Porovnávání, test pouze nastavení příznaků • Posuny a rotace pozor na znaménko

  21. 3. přesuny dat • typické pro Load/Store architekturu 4. vstup/výstup • přesuny dat z/na periferie • obsluha periferií start, test

  22. 5. řídící instrukce • skoky nepodmíněný, podmíněný volání podprogramu, návrat • řízení execute skip halt, wait, nop

  23. Určení argumentů • implicitně parametry dány použitou instrukcí • explicitně součástí zápisu instrukce je odkaz na parametry • nutno jasně definovat při návrhu instrukční sady

  24. Způsoby adresace • immediate – bezprostřední zápis v instrukci • direct – v instrukci zapsána adresa operandu • indirect – odkaz do paměti, kde je adresa oper. • indexed – k adrese je přičten index • based – adresa tvoří posunutí vzhledem k bázi • relative – vzhledem k adresovému čítači

  25. Immediate Mode • operand je obsažen v instrukci • data jsou za běhu kódu konstantní • po načtení instrukce není třeba přistupovat do paměti • velikost operandu je omezená formátem instrukcí

  26. Direct Mode • v instrukci je zapsána adresa operandu • k vykonání instrukce je třeba navíc jeden přístup k paměti • rozsah adres limitován velikostí instrukce • adresa operandu je konstantní, data se mohou měnit

  27. Indirect Mode • v instrukci je adresa, na které se v paměti nachází operand • k vykonání instrukce jsou třeba 2 přístupy navíc: • načtení adresy operandu • přístup k operandu

  28. Indexed Mode, Base Mode • výsledná adresa složena ze dvou částí: • základ • posunutí • velmi podobné, někdy se nerozlišuje • při rozlišování – podle toho, kdo to dělá: • indexed: v programu pro přístup k datům • based: v OS pro implementaci ochrany/segmentace

  29. Indexed mode +

  30. Based mode +

  31. Relative Mode • operand je určen relativně vzhledem k programovému čítači • typický případ: relativní odskok v cyklu

  32. Adresace s použitím registrů • Některá ze zúčastněných adres je z domény registrů, nikoli hlavní paměti • Register addressing • jako direct, ale adresová část určuje registr • Register indirect • jako indirect, ale adresová část určuje registr, který obsahuje adresu operandu

More Related