CompactRISC es una familia de arquitecturas de conjunto de instrucciones de National Semiconductor . La arquitectura se desarrolló de acuerdo con el principio de un conjunto de instrucciones reducido y se utiliza principalmente en microcontroladores [1] . Ejemplos de arquitecturas en esta familia son CR16 y CR16C de 16 bits y CRX de 32 bits [2] .
Las características de la familia CR16 son una implementación compacta (menos de 1 mm² con una tecnología de proceso de 250 nanómetros ), espacio de direcciones de dos megabytes (2 21 bytes), soporte para frecuencias de hasta 66 MHz, un multiplicador de hardware de números de 16 bits. Las arquitecturas de esta familia incluyen instrucciones complejas, por ejemplo, manipulación de bits o guardar varios registros en la pila a la vez en una sola instrucción [1] .
El CR16 tiene 16 registros de propósito general (16 bits cada uno) y registros de direcciones (21 bits). Hay 8 registros especiales: un contador de instrucciones ( Contador de programa , PC), un puntero de pila de interrupción ( Puntero de pila de interrupción en inglés , ISP), un puntero de vector de interrupción ( Registro de dirección de vector de interrupción en inglés , INTBASE), un registro de estado ( Estado del procesador en inglés Registro , PSR), registro de configuración ( ing. Registro de configuración , CFG) y tres registros de depuración. El registro de estado almacena los siguientes indicadores: C, T, L, F, Z, N, E, P, I [1] .
incluye trampas e interrupciones . Los comandos ejecutados pasan por un conducto de tres etapas : recepción de instrucciones, decodificación y ejecución [1] .
La arquitectura CR16 se utilizó en microcontroladores de National Semiconductor . En 2001, los microcontroladores basados en esta arquitectura comenzaron a admitir memoria flash incorporada [3] [4] . Desde 2007, la propiedad intelectual basada en CR16 está disponible para licencia [5] .