CompactRISC är en familj av instruktionsuppsättningsarkitekturer från National Semiconductor . Arkitekturen utvecklades i enlighet med principen om en reducerad instruktionsuppsättning och används främst i mikrokontroller [1] . Exempel på arkitekturer i denna familj är 16-bitars CR16 och CR16C och 32-bitars CRX [2] .
Funktioner i CR16-familjen är kompakt implementering (mindre än 1 mm² med en processteknik på 250 nanometer ), adressutrymme på två megabyte (2 21 bytes), stöd för frekvenser upp till 66 MHz, en hårdvarumultiplikator med 16-bitars tal. Arkitekturerna i denna familj inkluderar komplexa instruktioner, till exempel bitmanipulation eller att spara flera register i stacken samtidigt i en instruktion [1] .
CR16 har 16 allmänna register (16 bitar vardera) och adressregister (21 bitar). Det finns 8 specialregister: en instruktionsräknare ( Program Counter , PC), en avbrottsstackpekare ( English Interrupt Stack Pointer , ISP ), en avbrottsvektorpekare ( English Interrupt Vector Address Register , INTBASE ), ett statusregister ( English Processor Status Register , PSR), konfigurationsregister ( eng. Configuration register , CFG) och tre felsökningsregister. Statusregistret lagrar följande flaggor: C, T, L, F, Z, N, E, P, I [1] .
inkluderar fällor och avbrott . Utförda kommandon går genom en pipeline i tre steg : ta emot instruktioner, avkodning och exekvering [1] .
CR16-arkitekturen användes i mikrokontroller från National Semiconductor . 2001 började mikrokontroller baserade på denna arkitektur stödja inbyggt flashminne [3] [4] . Sedan 2007 har immateriell egendom baserad på CR16 gjorts tillgänglig för licensiering [5] .