Registr procesoru

Registr procesoru je v informatice úložiště pro informace o velikosti jednoho slova, které je umístěné v procesoru počítače, v nejrychlejší paměti počítače. Procesor používá registry pro práci s čísly (aritmetické výpočty) a další zpracování informací při provádění strojových instrukcí. V jazyce symbolických adres, který je blízký strojovému kódu procesoru, mají registry podobu písmeny značených proměnných. Kromě obecných registrů, do kterých může program ukládat čísla a adresy, existují různé speciální registry jako např. registr příznaků. Procesor má typicky několik až několik málo desítek registrů různých typů. Velikost (šířka) registrů je obvykle odvozena od šířky datové sběrnice nebo velikosti slova procesoru, kterou procesor používá (např. 8, 16, 32 nebo 64 bitů).

Charakteristika

Pro čtení a zápis dat do registrů jsou obvykle v procesoru k dispozici speciální strojové instrukce. Registry ale mohou být i paměťově mapované a tedy přístupné stejným způsobem, jako data v operační paměti. Pokud jsou v registrech uloženy nejvíce používaná data, je jejich zpracování velmi rychlé (viz alokace registrů při optimalizaci). Běžně jsou v procesorech jednotky až desítky registrů.

Registry mohou být specializované (např. akumulátor, nad kterým probíhají aritmeticko-logické operace), univerzální (lze do nich zapisovat, číst z nich a používat je v různých strojových instrukcích). Některé registry mohou být pouze pro čtení (např. tzv. příznaky) nebo jen pro zápis. V procesorech mohou být řídící registry, jejichž změnou se mění činnost procesoru.

Čistě zásobníkové procesory mohou registry v běžném smyslu postrádat – procesor sice má registrovou paměť, ale je spravována jako cache vrchní části zásobníku (s tím, že vrchol zásobníku slouží jako akumulátor). Zásobníky mohou být typu LIFO (last in, first out) nebo FIFO (first in, first out).

Kategorie registrů

Registry se obvykle dělí podle počtu bitů, které mohou obsahovat, například jako „8bitový registr“ nebo „32bitový registr“. Registry jsou dnes obvykle implementovány jako soubor registrů.

Procesor často obsahuje několik typů registrů, které mohou být klasifikovány podle jejich obsahu, nebo instrukcí sloužících pro práci s nimi:

  • Uživatelsky-přístupné registry – Nejčastější rozdělení je do datových registrů a adresových registrů.
  • Datové registry jsou používány pro uložení číselných hodnot, jako jsou integer a hodnoty s pohyblivou desetinnou čárkou. V některých starších a jednodušších procesorech se užívá speciální datový registr, známý jako accumulator neboli střadač. Ten se používá pro mnoho operací.
  • Adresové registry v sobě uchovávají adresy a jsou používané instrukcemi, které přistupují do paměti počítače nepřímo.
    • Některé procesory obsahují registry, které mohou být použity pouze pro uložení adresy nebo pro uložení číselné hodnoty (v některých případech použity jako indexové registry, jejichž hodnota se doplňuje jako offset z některých adres); jiné dostupné registry mohou obsahovat jak adresu tak data. Existuje široká škála možných způsobů adresování, které se používají pro efektivní práci s operandy.
    • Ukazatel zásobníku (stack pointer), se někdy nazývá stack register, který udává relativní adresu poslední přidané položky, tzv. vrchol zásobníku.
  • Podmínkové registry obsahují pravdivostní hodnotu často využívanou k zjištění, zda některá instrukce měla nebo neměla být vykonána.
  • Obecně účelné registry (GPR) – lze ukládat jak data tak adresy, tj. jsou kombinovány Datové/Adresní registry.
  • Registry s plovoucí řádovou čárkou (FPR) – pro uložení čísel s plovoucí řádovou čárkou v mnoha strukturách.
  • Konstantní registry – pouze pro čtení takové hodnoty, jako je nula, jedna, nebo pi.
  • Vektorové registry mají údaje pro vektorové zpracování prováděné SIMD instrukcemi (Single Instruction, Multiple Data).
  • Speciální registry udržují stav programu; obvykle obsahují Čítač instrukcí (PC – Program Counter), ukazatel zásobníku a stavový registr (PSW – processor status word).
    • Instrukční registry obsahují právě probíhající instrukci.

Příklady počtu registrů

Architektura Integer
registers
Double FP
registers
x86 8 8
x86-64 16 16
Itanium 128 128
UltraSPARC 32 32
PowerPC 32 32
DEC Alpha 32 32
MOS Technology 6502 3 0
Mikrokontrolér PIC 1 0
ARM 16 16

Tabulka ukazuje počet registrů několika tradičních architektur.

Příklady registrů architektury x86

Podrobnější informace naleznete v článku Registry x86.
  • Obecné registry – AX, BX, CX, DX. Měly původně 16bitů. Ve 32bitových systémech je označujeme jako EAX, EBX, ECX, EDX; v 64bitových RAX, RBX, RCX, RDX.

Jak už bylo řečeno, registry jsou 32bitové, pod označením AX, BX, CX, DX je přístupných pouze 16 dolních bitů. Ty dále rozdělujeme na AH, BH, CH, a DH, neboli horních (high) 8 bitů, a AL, BL, CL, DL, dolních (low) 8 bitů.

  • Obecné registry – SP, BP, SI, DI. Tyto registry se používají pro uložení offsetu a jsou 32bitové.
    • SP – obsahuje offset adresy vrcholu zásobníku. (Stack Pointer)
    • BP – určen pro ukládání offsetu při práci se zásobníkem (Base Pointer)
    • SI – určen pro uložení offsetu zdroje (Source Index)
    • DI – určen pro uložení offsetu cíle (Destination Index)

U těchto registrů se nedostanete přímo k 16bitové, nebo dokonce 8bitové části.

  • Segmentové registry – CS, DS, ES, FS, GS, SS. Tyto registry jsou 16bitové. Používají se pro uložení segmentové části.
    • CS – Code Segment. Segment kódu programu. Nelze přímo číst ani do něj zapisovat.
    • DS – Data Segment – Segment dat programu.
    • ES – Extra segment
    • FS – Volné použití
    • GS – Volné použití
    • SS – Segment zásobníku.

Všechny segmentové registry nelze přímo měnit.

  • Speciální registry – IP a FLAGS
    • IP – Instruction Pointer. Ukazuje offset právě vykonávané instrukce. Přímo nelze měnit.
    • FLAGS – registr příznaků. Tento registr není interpretován jako jedno číslo, ale jeho jednotlivé bity mají smysl příznaků:
      • OF – Overflow Flag. Příznak přetečení. Nastaví se na 1, je-li výsledek aritmetické operace větší než cílová hodnota.
      • DF – Direction Flag. Řídí směr zpracovávání řetězových operací. Při hodnotě 1 se řetězce zpracovávají odpředu.
      • IF – Interrupt Flag. Je-li 1 je povoleno přerušení, jinak je přerušení zakázáno.
      • TF – Trap Flag. Využívá se při krokování.
      • SF – Sign Flag. Je to samé jako nejvyšší bit výsledku. Pro záporná čísla platí SF=1.
      • ZF – Zero Flag. Je-li výsledek operace 0, ZF=1.
      • AF – Auxiliary Carry Flag. Pomocný příznak přenosu.
      • PF – Parity Flag. Příznak parity. Hodnota tohoto příznaku je 1, pokud dolních 8 bitů právě provedené operace obsahuje sudý počet „1“.
      • CF – Carry flag. Příznak přenosu. Slouží pro přenos mezi čísly o více slovech.

Užití registru

Počet registrů, který je k dispozici procesoru, a operace, které lze provést pomocí těchto registrů, mají významný dopad na kvalitu kódů vygenerovaných optimalizovanými překladači. Minimální počet potřebných registrů vyhodnotíme pomocí stromu, doplněného o Strahlerovo číslo.

Související články

Externí odkazy

Pahýl
Tento článek je příliš stručný nebo postrádá důležité informace.
Pomozte Wikipedii tím, že jej vhodně rozšíříte. Nevkládejte však bez oprávnění cizí texty.

Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Registr_procesoru
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.