CompactRISC je rodina architektur instrukční sady od National Semiconductor . Architektura byla vyvinuta v souladu s principem redukované instrukční sady a používá se především v mikrokontrolérech [1] . Příklady architektur v této rodině jsou 16bitové CR16 a CR16C a 32bitové CRX [2] .
Mezi vlastnosti rodiny CR16 patří kompaktní provedení (méně než 1 mm² s procesní technologií 250 nanometrů ), dvoumegabajtový (2 21 bytů) adresní prostor, podpora frekvencí až 66 MHz, hardwarový násobič 16bitových čísel. Architektury této rodiny zahrnují složité instrukce, například bitovou manipulaci nebo uložení několika registrů na zásobníku najednou v jedné instrukci [1] .
CR16 má 16 obecných registrů (každý 16 bitů) a adresních registrů (21 bitů). Existuje 8 speciálních registrů: čítač instrukcí ( Program Counter , PC), ukazatel zásobníku přerušení ( anglicky Interrupt Stack Pointer , ISP), ukazatel vektoru přerušení ( anglicky Interrupt Vector Address Register , INTBASE), stavový registr ( anglicky Processor Status Registr , PSR), konfigurační registr ( angl. Configuration register , CFG) a tři ladicí registry. Stavový registr ukládá tyto příznaky: C, T, L, F, Z, N, E, P, I [1] .
zahrnuje pasti a přerušení . Prováděné příkazy procházejí třístupňovým potrubím : příjem instrukcí, dekódování a provádění [1] .
Architektura CR16 byla použita v mikrokontrolérech od National Semiconductor . V roce 2001 začaly mikrokontroléry založené na této architektuře podporovat vestavěné flash paměti [3] [4] . Od roku 2007 je duševní vlastnictví založené na CR16 zpřístupněno pro licencování [5] .