CompactRISC este o familie de arhitecturi de seturi de instrucțiuni de la National Semiconductor . Arhitectura a fost dezvoltată în conformitate cu principiul unui set de instrucțiuni redus și este utilizată în principal în microcontrolere [1] . Exemple de arhitecturi din această familie sunt CR16 și CR16C pe 16 biți și CRX pe 32 de biți [2] .
Caracteristicile familiei CR16 sunt implementare compactă (mai puțin de 1 mm² cu o tehnologie de proces de 250 nanometri ), spațiu de adrese de doi megaocteți (2 21 octeți), suport pentru frecvențe de până la 66 MHz, un multiplicator hardware de numere de 16 biți. Arhitecturile acestei familii includ instrucțiuni complexe, de exemplu, manipularea biților sau salvarea mai multor registre pe stivă deodată într-o singură instrucțiune [1] .
CR16 are 16 registre de uz general (16 biți fiecare) și registre de adrese (21 de biți). Există 8 registre speciale: un contor de instrucțiuni ( Program Counter , PC), un indicator de stivă de întreruperi ( Engleză Interrupt Stack Pointer , ISP), un indicator de vector de întrerupere ( Engleză Interrupt Vector Address Register , INTBASE), un registru de stare ( Engleză Processor Status ). Register , PSR), registru de configurare ( ing. Registrul de configurare , CFG) și trei registre de depanare. Registrul de stare stochează următoarele steaguri: C, T, L, F, Z, N, E, P, I [1] .
include capcane și întreruperi . Comenzile executate trec printr-o conductă în trei etape : primirea instrucțiunilor, decodare și execuție [1] .
Arhitectura CR16 a fost folosită în microcontrolere de la National Semiconductor . În 2001, microcontrolerele bazate pe această arhitectură au început să accepte memoria flash încorporată [3] [4] . Din 2007, proprietatea intelectuală bazată pe CR16 a fost pusă la dispoziție pentru licențiere [5] .