FAV-ZCU/KIV POT/01. Registry.md

4.2 KiB
Raw Permalink Blame History

Registry

Terminologie

  • procesor (CPU) = řadič + ALU
  • mikroprocesor = procesor vyrobený monolitickou technologií na 1 čipu
    • mikroprocesor není schopen samostatně fungovat k činnosti potřebuje paměť, periferní obvody, ...
  • mikrokontrolér = mikropočítač s pamětí a se speciálními periferiemi a dalšími obvody vyrobený na 1 čipu

Registr

  • slouží v počítači jako dočasná paměť pro uložení určité hodnoty
  • sestaven z klopných obvodů (v každém obvodu 1 bit)

Architektura počítače

  • dvě základní koncepce:

Von Neumannova (Princetonská) architektura

  • společný adresní prostor (paměť) pro data i kód programu
  • výhody
    • poměr velikostí kód/data lze měnit podle okamžité potřeby
    • procesor má přístup do kódové paměti i pro zápis
  • nevýhody
    • procesor nemůže současně číst kód i data (omezení rychlosti)

Hardwardská architektura

  • data a kód programu jsou v oddělených adresních prostorech
  • výhody
    • možnost číst současně data i kód programu (vyšší rychlost)
    • šířka slova kódové paměti může být optimalizovaná
  • nevýhody
    • poměr velikostí datové a kódové paměti je pro daný případ pevný
    • někdy komplikovanější zavádění a ladění programu

Kombinace obou architektur

  • často se používá Von Neumannova architektura se samostatnou datovou a kódovou cache

Programátorsky zajímavé vlastnosti procesoru

  • základní uspořádání (architekturu) procesoru popisuje tzv. ISA (Instruction Set Architecture)
    • registrová sada procesoru
    • instrukční soubor
    • adresní prostory (paměti a IO)
  • rozlišují se 2 základní typy

Akumulátorově orientovaná ISA

  • instrukční soubor orientován na použití akumulátoru
    • akumulátor (ACC) - speciální registr pro uložení operandů
    • typická operace:
      • \text{ACC} \leftarrow \text{ACC} \times \text{operand}
      • operand může být v univerzálních registrech nebo v paměti
    • obvykle malý počet univerzálních registrů
  • registrová sada procesoru (Intel IA-32)
    • 4 ks. univerzálních registrů 32 bitů (EAX = akumulátor)
    • 4 ks. bázových a indexových registrů
    • 6 ks. segmentových registrů
    • IP (PC) a příznakový registr
    • 8 ks. FP registrů 80 bitů
    • 8 ks. SIMD registrů 128 bitů
    • 8 ks. MMX registrů 64 bitů

Registrově orientovaná ISA

  • instrukční soubor orientován na použití registrů
  • typická operace:
    • \text{Registr3} \leftarrow \text{Registr1} \times \text{Registr2}
    • nelze přímo použít operandy v paměti
      • je nutno je prvně uložit do registrů
  • obvykle velký počet registrů (typicky 16 - 32)
  • registrová sada procesoru (V850)
    • 32 ks. 32bitových registrů pro operandy interger (r0 ... r31)
    • všechny operace jsou typu \text{registr} \leftrightarrow \text{registr}
      • s pamětí pracují pouze instrukce Load a Store
  • registrová sada procesoru (MSP430)
    • 16 ks. 16/20bitových registrů pro operandy interger (R0 ... R15)
    • některé registry mají funkci
      • PC (Program Counter), SP (Stack Pointer), SR (Status Register)
  • registrová sada procesoru H8S
    • RxL, RxH - 8bitové registry
    • Rx, Ex - 16bitové registry
    • ERx - 32bitové registry
    • EXR - řídicí registr
    • CCR - příznakový registr
    • PC - programový čítač (24 bitů)
    • MAC - Multiply Accumulate
    • ER7 slouží implicitně jako SP

Použití registrů

Registr PC

  • Program Counter
  • při provádění určité instrukce obsahuje adresu následující instrukce
  • mění se při čtení instrukcí z paměti nebo při provedením skoku

Registr CCR

  • Condition Code Register
  • obsahuje soubor příznaků pro větvení programu
  • nastavuje se automaticky podle výsledku operace
  • používá se k větvení programu

Registr SP

  • Stack Pointer
  • ukazatel na vrchol zásobníku

Registr EXR

  • Extended Control Register
  • pro řízení přerušení a trasování

Jednoduchý program

  • sečtení dvou čísel v paměti, uložení výsledku do paměti
  • H8S neumí pracovat s operandy v paměti, operandy se musí uložit do registrů
  • výsledek operace sčítání je v registru, musí se uložit do paměti