C166: Porovnání verzí

Přidáno 1 699 bajtů ,  před 10 lety
(oprava odkazu)
== Jádro ==
Jádro řady C166 je ortogonální, nezaujme kromě instrukcí pro bitové manipulace žádnými zvláštními "výstřelky", popis od výrobce je jasný a přehledný. Jádro C166 operuje nad šestnácti šestnáctibitovými univerzálními registry GPR, které jsou pojmenovány R0 až R16. Registry R0 až R8 jsou přístupné i po [[byte|bajtech]] jako R0L, R0H, R1L, R1H, atd. Jinak jsou všechny GPR rovnocenné.
 
Stavovými registry jádra jsou:
* PSW - registr příznaků
* 16 bitový čítač instrukcí IP
* 16 bitový ukazatel stránky kódu CSP - rozšiřuje prostor pro program (adresa je daná CSP:IP)
* Registry pro stránkování dat: DPP0, DPP1, DPP2, DPP3 - mapují paměť, aby bylo možné využít oblasti nad 64 kiB (u jádra C167 a vyšších existuje pro náhodné mapování paměti účinnější mechanismus pomocí instrukčních sekvencí "EXTP" a "EXTS")
* SP - ukazatel zásobníku
* MDH, MDL, MDC - registry násobičky / děličky
 
Instrukční sada je poměrně jednoduchá a přehledná, obsahuje instrukce pro násobení 16 bitů x 16 bitů na 32 bitů a instrukce pro dělení 32 bitů / 16 bitů. Instrukce pro dělení trvá přes 20 taktů a je přerušitelná, aby nezhoršovala odezvy systému na časově kritické události. Instrukce pro násobení trvá u starší řady také několik taktů, u procesorů generace XC166 probíhá stejně rychle jako ostatní instrukce. "Dlouhé" skoky a volání umožňují využívání celé paměti pro program.
 
Jádro dovoluje pomocí DPP registrů nebo pomocí "rozšířených sekvencí" adresovat až 16 MiB paměti, paměť programu a dat je mapovaná stejně. Instrukce pro čtení nebo zápis 16bitového slova nedokážou pracovat se slovy na lichých adresách, při takovém přístupu k paměti je vygenerováno speciální nemaskovatelné přerušení (TRAP). Toto omezení je ve skutečnosti předností architektury C166, protože pomáhá odhalovat slabá místa v software.
 
Stavovými=== Stavové registry jádra jsou:===
* '''PSW''' - registr příznaků
* '''IP''' - 16 bitový čítač instrukcí IP
* '''CP''' - ukazatel "kontextu" registrové sady (určuje na které místo ''IRAM'' jsou mapovány registry ''GPR'')
* '''SP''' - ukazatel zásobníku (určuje kde v ''IRAM'' se nachází
* '''CSP''' - 16 bitový ukazatel stránky kódu CSP - rozšiřuje prostor pro program (adresa je daná CSP:IP)
* Registry pro stránkování dat: '''DPP0''', '''DPP1''', '''DPP2''', '''DPP3''' - registry pro stránkování dat - mapují paměť, aby bylo možné využít oblasti nad 64 kiB (u jádra C167 a vyšších existuje pro náhodné mapování paměti účinnější mechanismus pomocí instrukčních sekvencí "EXTP" a "EXTS")
* '''MDH''', '''MDL''', '''MDC''' - registry hardwarové násobičky / děličky
 
=== Univerzální registry ===
Univerzální registry se označují termínem GPR (general purpose registers). Jedná se o registry R0 až R16. Registry R0 až R7 jsou rovněž přístupné po bajtech (R0 jako RL0 a RH0 atp.). Jinak jsou registry zcela rovnocenné. Zvláštností rodiny C166 je, že sada univerzálních registrů je mapována do vnitřní paměti, což dovoluje velmi rychlé přepínání kontextu mezi různými úlohami (při přepínání úloh není nutné ukládat a načítat registry, stačí je namapovat do jiné oblasti IRAM).
 
=== Vnitřní paměť IRAM a Speciální funkční registry ===
Paměť IRAM a oblast SFR jsou napevno mapované ke konci třetí datové stránky (rozsah C000h až FFFFh). Zvláštní systémové postavení paměti IRAM spočívá v tom, že jedině do ní je možné mapovat systémový zásobník a univerzální registry GPR (tj. R0 až R16). Oblast SFR a část IRAM mohou přímo adresovat instrukce bitových manipulací. Oblast SFR je rovněž pro některé instrukce přístupná zkráceným osmibitovým adresováním.
 
'''Speciální funkční registry''':
* jsou těsně integrované s jádrem (mnoho instrukcí dovoluje adresování SFR-paměť)
* některé jsou systémové (ovlivňují časování přístupu do externí paměti, velikost a mapování zásobníku, segmentaci, řídí systém přerušení atp.)
* integrované periferie jsou těsně napojené na systém přerušení
 
== Externí odkazy ==
771

editací