Б41 (англ. B41) — российский 16-разрядный микроконтроллер, разработанный зеленоградской фирмой Kedah Electronics Engineering в 2004 году.

Общие сведения

править
 
Микросхемы Б41 в пластиковых корпусах

Микроконтроллер В41 реализован в виде заказной СБИС и относится к классу изделий «Система на кристалле». Основу микроконтроллера составляет 16-разрядное процессорное ядро с общим адресным пространством для программ и данных и CISC системой команд с развитым механизмом адресации. Интерпретация CISC команд осуществляется при помощи встроенных мини-программ внутреннего RISC-подобного ядра. Разрядность шины адреса в текущей реализации составляет 24 разряда, в то же время архитектура процессора позволяет расширить разрядность шины адреса до 32 разрядов.

Минимальный адресуемый элемент памяти, к которому допускается обращение — 16-разрядное слово. Для доступа к отдельным байтам в памяти используются специальные команды. Всё адресное пространство разбито на непересекающиеся сегменты по 64 К слов. Доступ к памяти внутри сегмента осуществляется в командах с помощью регистров-указателей или непосредственно, с использованием прямой адресации. Доступ к конкретным сегментам осуществляется с помощью сегментных регистров, содержимое которых фактически является расширением адреса, заданного в указателе или непосредственно при использовании прямой адресации.

Регистры периферийных устройств представлены в общем адресном пространстве микроконтроллера как ячейки памяти и размещены в конце адресного пространства нулевого сегмента. Для доступа к регистрам периферийных устройств используется основной набор команд процессора.

Механизм обработки прерываний микроконтроллера построен на основе переключения полных контекстов (наборов регистров). Один контекст представляет собой набор из 16 регистров. В этот набор входят 4 указателя общего назначения, указатель верхушки стека, два регистра-счётчика, регистр статических флагов, регистр состояния, указатель инструкций и шесть сегментных регистров, которые обеспечивают адресацию к памяти за пределами одного сегмента.

При обработке прерывания от периферийного устройства контроллер прерываний переключает процессор на соответствующий контекст (назначенный для этого устройства), и далее исполнение программы производится в соответствии с содержимым нового контекста. Таким образом, исключаются затраты на сохранение содержимого указателя инструкций и регистра состояния в стеке, на загрузку нового содержимого этих регистров, а также на сохранение в стеке других регистров, которые должны использоваться в обработчике прерываний.

В состав микроконтроллера входит 16-разрядный DSP-модуль, который обеспечивает выполнение операций целочисленного умножения с накоплением (48-разрядный сумматор) и деления.

Набор интерфейсов общего назначения

править
 
Блок-схема микроконтроллера
  • 16-разрядное 4-х контекстное процессорное ядро B41-core
  • MAC-модуль (16-разрядное умножение, умножение с накоплением и деление)
  • Контроллер прерываний
  • Криптографический модуль
  • Пермутатор (для Bluetooth устройств)
  • CVSD-кодек
  • Интерфейс радиомодуля (RMI)
  • Последовательный синхронный интерфейс SPI
  • Цифровой аудио интерфейс PCM
  • 2-х проводной интерфейс I2C
  • Последовательный асинхронный интерфейс UART
  • Ведущий JTAG-порт
  • 4 параллельных байтовых порта ввода-вывода
  • Мультиплексор выводов
  • 4 программируемых 16-разрядных таймера
  • Системный таймер 256 Гц
  • Сторожевой таймер WDT
  • Блок синхронизации (управление генераторами и тактовой частотой)
  • Регистр управления режимом Sleep.
  • Интерфейс внешней памяти (блок EMI)
  • Встроенное ПЗУ с начальным загрузчиком (1Kx16)
  • Встроенное ОЗУ ёмкостью 32Kx16(64КБ)

Особенности архитектуры

править

Процессорное ядро B41 спроектировано с использованием механизма интерпретации CISC команд при помощи встроенных мини-программ внутреннего RISC-подобного ядра. Поэтому с точки зрения программиста процессорное ядро представляет собой традиционную CISC платформу, для которой характерна развитая система команд с широким набором способов адресации, позволяющих выполнение операций над операндами, размещёнными не только в регистрах процессора, но и непосредственно в памяти. Другой особенностью процессорного ядра является 4-х контекстная архитектура.

Процессорное ядро B41 имеет следующие характеристики:

  • Единое адресное пространство для программ и данных
  • Разрядность шины данных, АЛУ и адресных регистров — 16 разрядов
  • Разрядность сегментных регистров — 8 разрядов в текущей версии, max = 16 разрядов
  • Разрядность адресной шины — 24 разряда в текущей версии, max = 32 разряда
  • Адресация команд и данных — словная (16 разрядов)
  • Сегментная (страничная) организация адресного пространства с непересекающимися сегментами. Размер адресуемой памяти определяется реальной разрядностью сегментных регистров (от 0 до 16 разрядов)
  • Система команд с развитым механизмом адресации операндов
  • Количество РОН: 7 на контекст
  • Количество сегментных регистров: 6 на контекст
  • 4-х контекстная архитектура (4 набора регистров, включая указатели стека, инструкций и регистры состояний)
  • Переход на обработку прерывания с аппаратным включением связанного с прерыванием контекста (обеспечивает немедленную реакцию на прерывание)
  • Механизм многократного выполнения текущей команды (мини-программный цикл)
  • Механизм ветвления по флагам пользователя
  • Число тактов выполнения команды типа «регистр — регистр»: 1.

Программное обеспечение

править
 
Отладочная плата

В качестве средств разработки и отладки прикладного программного обеспечения для микроконтроллера B41 поставляется комплект разработчика B41 SDK. В состав B41 SDK входят отладочный монитор-загрузчик B41 Loader, оптимизирующий компилятор с языка GNU GCC C/C++, Binutils(as, ld,…), операционная система B41OS (недоступная ссылка).

Группа разработчиков

править

Сергей Богуш, Равиль Волков, Олег Жихарев, Михаил Дябин, Игорь Панкратов, Игорь Черентаев , Дмитрий Желобаев, Илья Бернгардт, Михаил Игнатов, Игорь Смирнов, Андрей Смирнов.

Ссылки

править