CompactRISC on National Semiconductorin ohjesarjaarkkitehtuuriperhe . Arkkitehtuuri on kehitetty supistetun käskyjoukon periaatteen mukaisesti ja sitä käytetään pääasiassa mikro -ohjaimissa [1] . Esimerkkejä tämän perheen arkkitehtuureista ovat 16-bittinen CR16 ja CR16C sekä 32-bittinen CRX [2] .
CR16-perheen ominaisuuksia ovat kompakti toteutus (alle 1 mm² 250 nanometrin prosessitekniikalla ), kahden megatavun (2 21 tavua) osoiteavaruus, tuki taajuuksille 66 MHz asti, laitteistokerroin 16-bittisillä numeroilla. Tämän perheen arkkitehtuurit sisältävät monimutkaisia käskyjä, esimerkiksi bittimanipulaatiota tai useamman rekisterin tallentamisen pinoon kerralla yhdessä käskyssä [1] .
CR16:ssa on 16 yleiskäyttöistä rekisteriä (kukin 16 bittiä) ja osoiterekisteriä (21 bittiä). Erikoisrekisterejä on 8: käskylaskuri ( Program Counter , PC), keskeytyspinoosoitin ( englanniksi Interrupt Stack Pointer , ISP), keskeytysvektoriosoitin ( englanniksi Interrupt Vector Address Register , INTBASE), tilarekisteri ( englanniksi Processor Status Register , PSR), konfigurointirekisteri ( eng. Configuration register , CFG) ja kolme virheenkorjausrekisteriä. Tilarekisteri tallentaa seuraavat liput: C, T, L, F, Z, N, E, P, I [1] .
toteutus sisältää trapeja ja keskeytyksiä . Suoritetut komennot kulkevat kolmivaiheisen liukuhihnan läpi : ohjeiden vastaanottaminen, dekoodaus ja suoritus [1] .
CR16-arkkitehtuuria käytettiin National Semiconductorin mikro-ohjaimissa . Vuonna 2001 tähän arkkitehtuuriin perustuvat mikro-ohjaimet alkoivat tukea sisäänrakennettua flash-muistia [3] [4] . Vuodesta 2007 lähtien CR16:een perustuva immateriaalioikeus on ollut lisensoitavissa [5] .