CompactRISC — это семейство архитектур набора инструкций от National Semiconductor . Архитектуры разработаны в соответствии с принципами вычисления сокращенного набора инструкций и в основном используются в микроконтроллерах . [1] Подархитектуры этого семейства — 16-битные CR16 и CR16C и 32-битная CRX . [2]
Особенности семейства CR16: компактные реализации (менее 1 мм2 при 250 нм ), адресация 2 МБ (2 21 ), частоты до 66 МГц, аппаратный умножитель для 16-битных целых чисел. [1]
Он имеет сложные инструкции, такие как манипуляция битами, сохранение/восстановление и добавление/извлечение нескольких регистров с помощью одной команды. [1]
CR16 имеет 16 регистров общего назначения по 16 бит и регистры адреса шириной 21 бит. Имеется 8 специальных регистров: счетчик программ, указатель стека прерываний ISP, регистр адреса вектора прерываний INTBASE, регистр состояния PSR, регистр конфигурации и 3 отладочных регистра. Регистр состояния реализует флаги: C, T, L, F, Z, N, E, P, I. [1]
Инструкции кодируются в двухадресной форме в нескольких форматах, обычно они имеют 16-битную кодировку, но есть два формата для средних немедленных инструкций длиной 32 бита. Типичная длина опкода составляет 4 бита (биты 9–12 большинства типов кодирования. Основные форматы кодирования:
CR16C поставляется с другим форматом кодирования кода операции, имеет 23–32-битные адресные регистры и предоставляет два 32-битных регистра общего назначения. [3]
CR16 реализует ловушки и прерывания. Реализации CR16 имеют трехступенчатый конвейер: выборка, декодирование, выполнение. [1]
CR16 использовался в нескольких микроконтроллерах National Semiconductor, а с 2001 года появились интегрированные микроконтроллеры со встроенной флэш-памятью. [4] [5] С 2007 года IP на основе CR16 стала доступна для лицензирования [6]