A CompactRISC a National Semiconductor utasításkészlet-architektúráinak családja . Az architektúrát a redukált utasításkészlet elve alapján fejlesztették ki, és főleg mikrokontrollerekben használják [1] . Az ebbe a családba tartozó architektúrák például a 16 bites CR16 és CR16C , valamint a 32 bites CRX [2] .
A CR16 család jellemzői a kompakt megvalósítás (kevesebb, mint 1 mm² 250 nanométeres feldolgozási technológiával ), két megabájtos (2 21 bájt) címterület, 66 MHz-ig terjedő frekvenciák támogatása, 16 bites számok hardveres szorzója. Ennek a családnak az architektúrája összetett utasításokat tartalmaz, például bitmanipulációt vagy több regiszter mentését a veremben egy utasításban [1] .
A CR16 16 általános célú regiszterrel (egyenként 16 bites) és címregiszterrel (21 bit) rendelkezik. 8 speciális regiszter van: egy utasításszámláló ( Program Counter , PC), egy megszakítási verem mutató ( angol Interrupt Stack Pointer , ISP), egy megszakítási vektor mutató ( angol Interrupt Vector Address Register , INTBASE ), egy állapotregiszter ( angol processzorállapot Regiszter , PSR), konfigurációs regiszter ( eng. Configuration register , CFG) és három hibakereső regiszter. Az állapotregiszter a következő zászlókat tárolja: C, T, L, F, Z, N, E, P, I [1] .
megvalósítás csapdákat és megszakításokat tartalmaz . A végrehajtott parancsok három szakaszból álló folyamaton mennek keresztül : utasítások fogadása, dekódolás és végrehajtás [1] .
A CR16 architektúrát a National Semiconductor mikrokontrollereiben használták . 2001-ben az ezen az architektúrán alapuló mikrokontrollerek támogatni kezdték a beépített flash memóriát [3] [4] . 2007 óta engedélyezik a CR16-on alapuló szellemi tulajdont [5] .