FAV-ZCU/KIV POT/03. Kódování instrukcí.md

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

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

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