C166: Porovnání verzí

Přidáno 44 bajtů ,  před 1 rokem
m
typografie, ČJ
(Oprava drobných nepřesností.)
m (typografie, ČJ)
'''C166''' je architektura 16-bitových16bitových [[mikrokontrolér]]ů, kterou vyvinula firma [[Siemens AG|Siemens]]. Dnes ve výrobě procesorů vycházejících z architektury C166 pokračuje firma [[Infineon]], která vznikla odštěpením od Siemense a firma [[STMicroelectronics]]. Od roku 1993 byla jádra řady C166/ST10 vyvíjena společně s firmou SGS Thomson (nyní STMicroelectronics).
 
== Základní rysy ==
Ř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é 10bitové A/D převodníky.
 
== Procesory vycházející z řady C166 ==
| C166 || 80C166 || ST10F166 || původní jádro od fy Siemens
|-
| C167 || 80C167 || ST10F167 || rozšíření o PWM, "atomic"„atomic“ instrukce, CAN, zrychlení
|-
| XC166 || XC167CI || ST10F269 || zrychlení násobení, rozšíření o DSP jednotku, 2 x CAN
 
== Jádro ==
Jádro řady C166 je ortogonální, nezaujme kromě instrukcí pro bitové manipulace žádnými zvláštními "výstřelky"„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ž R15. Registry R0 až R7 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é"„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„rozšířených sekvencí"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 softwaru.
 
=== Stavové registry jádra ===
* '''PSW''' - registr příznaků
* '''IP''' - 16 bitový16bitový čítač instrukcí
* '''CP''' - ukazatel "kontextu"„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''' - 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"„EXTP“ a "EXTS"„EXTS“)
* '''MDH''', '''MDL''', '''MDC''' - registry hardwarové násobičky / děličky
 
=== Univerzální registry ===