C166: Porovnání verzí

Odebrán 1 bajt ,  před 6 lety
Oprava drobných nepřesností.
m (Bot: Odstranění 2 odkazů interwiki, které jsou nyní dostupné na Wikidatech (d:q1022631))
(Oprava drobných nepřesností.)
Řada C166 je originální architekturou pro [[vestavěný systém|embedded systémy]], zaměřenou na měření, regulaci a řízení. Jádro je inspirováno koncepcí [[RISC]], takže instrukce nespotřebují mnoho taktů, avšak instrukční soubor je poměrně rozsáhlý, dokonce obsahuje instrukce pro přímé bitové manipulace. Výborně integrované vnitřní periferie, velmi pružný systém přerušení a mapování sady obecných registrů dovolují velmi dobrou odezvu na externí události.
 
Rodina C166 patří k prvním architekturám, které integrovaly v jediném čipu velké množství periferií - od sériových linek, čítačů, časovačů, registrů pro zachycení/generování externích událostí, až po rychlé a přesné 10-bitové10bitové A/D převodníky.
 
== Procesory vycházející z řady C166 ==
 
== 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ž R16R15. Registry R0 až R8R7 jsou přístupné i po [[byte|bajtech]] jako R0L, R0H, R1L, R1H, atd. Jinak jsou všechny GPR rovnocenné.
 
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 softwaresoftwaru.
 
=== Stavové registry jádra ===
* '''IP''' - 16 bitový čítač instrukcí
* '''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ý16bitový ukazatel stránky kódu - rozšiřuje prostor pro program (adresa je daná CSP:IP)
* '''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ž R16R15. 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ž R16R15). 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''':
Neregistrovaný uživatel