4.2 KiB
4.2 KiB
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