registr, ve kterém aritmeticko-logická jednotka procesoru (např. CPU) provádí výpočty From Wikipedia, the free encyclopedia
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ů).
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).
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:
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.
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ů.
U těchto registrů se nedostanete přímo k 16bitové, nebo dokonce 8bitové části.
Všechny segmentové registry nelze přímo měnit.
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.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.