CompactRISC er en familie af instruktionssætarkitekturer fra National Semiconductor . Arkitekturen er udviklet i overensstemmelse med princippet om et reduceret instruktionssæt og bruges hovedsageligt i mikrocontrollere [1] . Eksempler på arkitekturer i denne familie er 16-bit CR16 og CR16C og 32-bit CRX [2] .
Funktionerne i CR16-familien er kompakt implementering (mindre end 1 mm² med en 250-nanometer procesteknologi ), adresseplads på to megabyte (2 21 bytes), understøttelse af frekvenser op til 66 MHz, en hardwaremultiplikator på 16-bit tal. Arkitekturerne i denne familie inkluderer komplekse instruktioner, for eksempel bitmanipulation eller lagring af flere registre på stakken på én gang i en instruktion [1] .
CR16 har 16 generelle registre (16 bit hver) og adresseregistre (21 bit). Der er 8 specielle registre: en instruktionstæller ( Program Counter , PC), en interrupt stack pointer ( English Interrupt Stack Pointer , ISP ), en interrupt vector pointer ( English Interrupt Vector Address Register , INTBASE ), et statusregister ( English Processor Status Register , PSR), konfigurationsregister ( eng. Configuration register , CFG) og tre debug-registre. Statusregisteret gemmer følgende flag: C, T, L, F, Z, N, E, P, I [1] .
implementeringen inkluderer fælder og interrupts . Udførte kommandoer går gennem en tre-trins pipeline : modtagelse af instruktioner, afkodning og udførelse [1] .
CR16-arkitekturen blev brugt i mikrocontrollere fra National Semiconductor . I 2001 begyndte mikrocontrollere baseret på denne arkitektur at understøtte indbygget flashhukommelse [3] [4] . Siden 2007 er intellektuel ejendom baseret på CR16 blevet gjort tilgængelig for licensering [5] .