Первый митап российского Альянса RISC-V


15 апреля 2024 года в Санкт-Петербурге состоялось небольшое, но знаковое событие – первый технический митап российского Альянса RISC-V. На нём старший инженер CloudBEAR по разработке ПО, Дмитрий Захаров, рассказал о применении P-расширения для архитектуры набора инструкций (ISA) RISC-V для алгоритмов цифровой обработки сигналов.

P-расширение представляет собой набор инструкций для ускорения целочисленной арифметики и арифметики с фиксированной точкой и в текущей версии включает в себя около 330 инструкций. Это расширение работает с регистрами общего назначения (GPR) и может рассматриваться как оперирование небольшими векторами данных, причём интерпретация вектора определяется кодом инструкции. Также Р-расширение используется для ускорения алгоритмов цифровой обработки сигналов на встраиваемых устройствах и небольших ядрах.

Его разработка началась в 2016 году с целью создания более компактной альтернативы векторным расширениям для целочисленной арифметики в ISA RISC-V. В 2017 году компания Andes предложила свои наработки по P-расширению в качестве основы для стандарта, и с тех пор разработка спецификации продолжается. Текущая версия спецификации P-extension - 0.9.1, и в настоящее время под руководством автора проекта SoftFloat Джона Хаузера ведётся работа по утверждению основного набора инструкций и отложению остальных на будущее.

P-extension может использоваться в различных приложениях, включая обработку голоса на конечных устройствах, распознавание речи и выполнение алгоритмов машинного обучения на микроконтроллерах. И, хотя его спецификация еще не ратифицирована, уже существует ряд чипов, в основном на базе ядер Andes, поддерживающих её.

Команда CloudBEAR разработала компактную библиотеку DSP-примитивов для микроконтроллеров и устройств, совместимую с интерфейсом CMSIS-DSP, и оптимизировала ограниченный набор функций для первой версии с использованием P-расширения.